Linux 的管理使用者是 root,遠端連線的預設埠是 22,這是通常有 IT 經驗的人都知道的。為了系統安全,我們通常都會修改這些預設的設定,下面就說下怎麼修改 ssh 的配置。實驗用的系統為 CentOS6.9,其他的 Linux 也可以參考。
1 、修改 ssh 連線的埠
ssh 的埠預設為 22,我們可以透過修改配置檔案改為一個非著名的埠,比如 2222.
vim /etc/ssh/sshd_config
用 vim 編輯器開啟 sshd_config,把 22 埠改為 2222,然後儲存退出。

注意:配置檔案生效之前,我們要在防火牆放行 2222 埠,設定 iptables 。
iptables -I INPUT -p tcp -m tcp –dport 2222 -j ACCEPT    #放行 2222 埠
/etc/init.d/iptables save    #儲存 iptables 配置
/etc/init.d/iptables restart    #重啟 iptables 服務
過載 ssh 配置檔案,不建議用 restart 來重啟 ssh 服務,這樣會影響到現有的 ssh 連線。
/etc/init.d/sshd reload
然後用 XShell 重新連線看看,連線成功。

2 、禁止 root 使用者直接 ssh 連線
root 這個帳號是所有人都知道並且擁有最高許可權的帳號,直接暴露在網際網路中不大安全,我們可以禁止 ssh 使用 root 連線,同樣只需要修改 ssh 的配置檔案即可。在這裡要確認自己的系統有一個可以登入的普通帳號,用該帳號登入之後再 su -切換到 root,或者將該帳號加入 sudoers 裡面。
用 vim 編輯器開啟 ssh 的配置檔案,找到 PermitRootLogin 那行,去掉註釋,引數改為 no,或者直接在最後幾行加入下面的幾條引數。(這幾個命令都可以在配置檔案找到的)
PermitRootLogin no        #是否允許 root 登入
PermitEmptyPasswords no        #是否允許空密碼登入
UseDNS yes        #是否對遠端 WordPress 主機名進行反向解析,關閉會提高連線的速度
GSSAPIAuthentication no        #解決 Linux 之間使用 ssh 連線慢的問題
修改之後,儲存退出,然後重新載入 ssh 檔案即可。
3 、其他
如果對安全有更高的要求,可以更高 ssh 的監聽 ip,使其只監聽內網的 ip 。可以透過防火牆來限制來源的 IP 地址
iptables -I INPUT -s 192.168.17.0/24 -p tcp –dport 2222 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart