注意:本文相關配置及說明已在 CentOS 6.5 64 位操作系統中進行過測試。其它類型及版本操作系統配置可能有所差異,具體情況請參閱相應操作系統官方文檔。
問題描述
雲服務器 ECS (Elastic Compute Server) Linux 服務器啟動 SSH 服務時,命令行或 secure日志出現類似如下錯誤信息:
- FAILED.
- fatal: Cannot bind any address.
- address family must be specified before ListenAddress.
問題原因
SSH 服務的 AddressFamily 參數用於指定運行時使用的協議簇。如果配置只使用了 IPV6,而系統內沒有啟用 IPV6、或 IPV6 協議沒有得到有效配置,就可能會導致出現該問題。
處理辦法
要解決該問題,請進行如下配置檢查和修改:
- 通過 管理終端 進入系統。
- 通過 cat 等指令查看 /etc/ssh/sshd_config 中是否包含類似如下配置:
說明:該參數可選值為:AddressFamily inet6
- inet:使用 IPV4 協議簇,為默認值。
- inet6:使用 IPV6 協議簇。
- any:同時啟用 IPV4 和 IPV6 協議簇。
-
如果需要修改相關策略配置,在繼續之前建議進行文件備份。
-
使用 vi 等編輯器,將參數值設置為 inet,或者整個刪除或注釋(在最開頭添加 # 號)整行配置。比如:
# AddressFamily inet
-
同時,確保 AddressFamily 參數在ListenAddress 之前配置,比如:
AddressFamily any #該行配置在前面 ListenAddress 0.0.0.0
如果還有問題,可以參閱雲服務器 ECS Linux SSH 無法登錄問題排查指引做進一步排查分析。
轉載:https://help.aliyun.com/knowledge_detail/13125036.html#SSH%20%E6%9C%8D%E5%8A%A1%E5%90%AF%E5%8A%A8%E6%97%B6%E5%87%BA%E7%8E%B0%E5%A6%82%E4%B8%8B%E9%94%99%E8%AF%AF%EF%BC%9Afatal:%20Cannot%20bind%20any%20address