云服務(wù)器 Linux SSH無法遠(yuǎn)程登錄問題排查指引
SSH 登錄關(guān)聯(lián)因素示意圖
無法登錄常見現(xiàn)象及處理辦法
針對前述不同因素,常見的問題現(xiàn)象及處理辦法說明如下:
客戶端問題
中間網(wǎng)絡(luò)問題
PAM 安全框架相關(guān)問題
Linux 系統(tǒng)環(huán)境配置問題
SSH 服務(wù)及參數(shù)配置問題
SSH 服務(wù)關(guān)聯(lián)目錄或文件配置問題
SSH 服務(wù)密鑰配置問題
客戶端問題
客戶端無法正常登錄時,建議先使用不同的 SSH 客戶端基于相同賬戶信息進(jìn)行登錄測試。如果能正常登錄,則判斷是客戶端配置問題,需要對客戶端配置或軟件運(yùn)行情況做排查分析。
中間網(wǎng)絡(luò)問題
客戶端無法正常通過 SSH 連接服務(wù)器時,先通過如下方式進(jìn)行 telnet 端口測試,判斷是否是中間網(wǎng)絡(luò)異常所致:
telnet <服務(wù)器 IP>
正常情況下,如下圖所示,會返回服務(wù)端 SSH 軟件版本號:
如果端口測試失敗,則可以參閱如下文檔針對客戶端到服務(wù)器之間的網(wǎng)絡(luò)做進(jìn)一步排查分析:
ping 丟包或不通時鏈路測試說明
能 ping 通但端口不通時端口可用性探測說明
網(wǎng)絡(luò)異常時抓包操作說明
PAM 安全框架相關(guān)問題
Linux 系統(tǒng)的 PAM 安全框架,可以加載相關(guān)安全模塊,對服務(wù)器的賬戶策略、登錄策略等進(jìn)行訪問控制。如果相關(guān)配置存在異常,或觸發(fā)了相關(guān)策略,就可能會導(dǎo)致 SSH 登錄失敗。與PAM 安全框架相關(guān)的常見案例如下:
SSH 登錄時出現(xiàn)如下錯誤:pam_listfile(sshd:auth): Refused user root for service sshd
SSH 登錄時出現(xiàn)如下錯誤:requirement "uid >= 1000" not met by user "root"
SSH 登錄時出現(xiàn)如下錯誤:Maximum amount of failed attempts was reached
SSH 登錄時出現(xiàn)如下錯誤:login: Module is unknown
Linux 系統(tǒng)環(huán)境配置問題
Linux 內(nèi)的系統(tǒng)環(huán)境(比如中毒、賬戶配置、環(huán)境變量配置等)如果出現(xiàn)異常,也可能會導(dǎo)致 SSH 登錄失敗。與 Linux 系統(tǒng)環(huán)境相關(guān)的常見案例如下:
SSH 登錄時出現(xiàn)如下錯誤:ssh_exchange_identification: read: Connection reset by peer
中毒導(dǎo)致 SSH 服務(wù)運(yùn)行異常,出現(xiàn)如下錯誤:fatal: mm_request_send: write: Broken pipe
SSH 服務(wù)啟動時出現(xiàn)如下錯誤:main process exited, code=exited
SSH 連接時出現(xiàn)如下錯誤:pam_limits(sshd:session):could not sent limit for ‘nofile’
SSH 連接時出現(xiàn)如下錯誤:pam_unix(sshdsession) session closed for user
SSH 連接時出現(xiàn)如下錯誤:error Could not get shadow infromation for root
SSH 服務(wù)及參數(shù)配置問題
SSH 服務(wù)的默認(rèn)配置文件為 /etc/ssh/sshd_config。配置文件中的相關(guān)參數(shù)配置異常,或啟用了相關(guān)特性或策略,也可能會導(dǎo)致SSH 登錄失敗。與 SSH 服務(wù)及參數(shù)配置相關(guān)的常見案例如下:
SSH 登錄時出現(xiàn)如下錯誤:Disconnected:No supported authentication methods available
SSH 登錄時出現(xiàn)如下錯誤:User root not allowed because not listed in
SSH 登錄時出現(xiàn)如下錯誤:Permission denied, please try again
SSH 登錄時出現(xiàn)如下錯誤:Too many authentication failures for root
SSH 服務(wù)啟動時出現(xiàn)如下錯誤:error while loading shared libraries
SSH 服務(wù)啟動時出現(xiàn)如下錯誤:fatal: Cannot bind any address
SSH 服務(wù)時出現(xiàn)如下錯誤:Bad configuration options
云服務(wù)器Linux SSH 啟用 UseDNS 導(dǎo)致連接速度變慢
SSH 服務(wù)關(guān)聯(lián)目錄或文件配置問題
SSH 服務(wù)基于安全性考慮,在運(yùn)行時,會對相關(guān)目錄或文件的權(quán)限配置、屬組等進(jìn)行檢查。過高或過低的權(quán)限配置,都可能會引發(fā)服務(wù)運(yùn)行異常,進(jìn)而導(dǎo)致客戶端登錄失敗。與 SSH 服務(wù)關(guān)聯(lián)目錄或文件配置相關(guān)的常見案例如下:
SSH 登錄時出現(xiàn)如下錯誤:No supported key exchange algorithms
SSH 服務(wù)啟動時出現(xiàn)如下錯誤:must be owned by root and not group or word-writable
SSH 服務(wù)密鑰配置問題
SSH 服務(wù)采用非對稱加密技術(shù),對所傳輸?shù)臄?shù)據(jù)進(jìn)行加密??蛻舳思胺?wù)端會交換和校驗(yàn)相關(guān)密鑰信息的有效性。與 SSH 服務(wù)密鑰配置相關(guān)的常見案例如下:
SSH 登錄時出現(xiàn)如下錯誤:Host key verification failed
云服務(wù)器 Linux SSH 連接交互過程簡介
云服務(wù)器 Linux SSH 基于密鑰交換的自動登錄原理簡介及配置說明
SSH 無法登錄問題排查思路
如果根據(jù)前述問題場景進(jìn)行排查和處理后,還是無法正常登錄。則建議按照如下步驟進(jìn)行逐一排查分析:
1、多客戶端對比測試:
使用不同的 SSH 客戶端及 管理終端 做對比訪問測試,以判斷是否是個別客戶端自身配置或軟件運(yùn)行問題所致。如果管理終端登錄正常,也可以通過管理終端進(jìn)入系統(tǒng)做進(jìn)一步排查分析。
2、網(wǎng)絡(luò)測試:
參閱前文中間網(wǎng)絡(luò)問題小節(jié)相關(guān)說明,測試網(wǎng)絡(luò)連通性。\\
3、服務(wù)端日志獲取:
通過 管理終端 進(jìn)入服務(wù)器。然后在客戶端重新訪問測試時,通過如下指令同步獲取服務(wù)端相關(guān)日志信息:tailf /var/log/secure
4、客戶端日志獲取:
如果客戶端是 Linux 環(huán)境,則可以通過如下指令,獲取詳細(xì)的 SSH 登錄交互日志:
ssh -vvv <服務(wù)器 IP>比如:[root@centos~]# ssh -vvv 192.168.0.1OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013debug1: Reading configuration data /etc/ssh/ssh_configdebug1: Applying options for debug2: ssh_connect: needpriv 0debug1: Connecting to 192.168.0.1 [192.168.0.1] port 22.debug1: connect to address 192.168.0.1 port 22: Connection timed outssh: connect to host 192.168.0.1 port 22: Connection timed out
5、SH 服務(wù)運(yùn)行狀態(tài)檢查:
通過 管理終端 登錄服務(wù)器,然后通過如下方式檢查 SSH 服務(wù)運(yùn)行狀態(tài):
· 檢查服務(wù)運(yùn)行狀態(tài):
通過如下指令檢查服務(wù)運(yùn)行狀態(tài)。正常情況下會返回運(yùn)行狀態(tài)及相應(yīng)進(jìn)程 PID:
[root@centos ~]# service sshd statusopenssh-daemon (pid 31350) is running…[root@centos ~]# service sshd restartStopping sshd: [ OK ]Starting sshd: [ OK ]
· 檢查服務(wù)監(jiān)聽狀態(tài):
通過如下指令檢查服務(wù)監(jiān)聽狀態(tài)。正常情況下會返回相應(yīng)端口監(jiān)聽信息:
netstat -ano | grep 0.0.0.0:22tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN off (0.00/0/0)
127.0.0.1 登錄測試:
通過 管理終端 登錄服務(wù)器,然后 ssh 127.0.0.1。如果能正常登錄,則推斷是系統(tǒng)防火墻或外部安全組策略等配置異常,導(dǎo)致客戶端登錄失敗。