標籤:linux-ssh
今日在進行SSH免密碼登陸的時候,使用SSH進行測試,拋出下面異常
ssh: connect to host localhost port 22: Connection refused
在網上收了下,回覆很多,基本都是
1、沒啟動SSH
2、沒安裝SSH
3、沒關防火牆
4、…. ,千篇一律。
上面的解決方案我都看了,但是還是不好使。
調研了些關於SSH的資料,內容如下,
SSH:是一種安全通道協議,主要用來實現字元介面的遠程登入,遠程複製等功能(使用TCP的22號連接埠)。SSH協議對通訊雙方的資料轉送進行了加密處理,其中包括使用者登入時輸入的使用者口令。
在RHEL 5系統中使用的是OpenSSH伺服器由openssh,openssh-server等軟體包提供的(預設已經安裝),並以將sshd添加為標準的系統服務。
SSH提供一下兩種方式的登入驗證:
1、密碼驗證:以伺服器中本地系統使用者的登入名稱稱,密碼進行驗證。
2、秘鑰對驗證:要求提供相匹配的秘鑰資訊才能通過驗證。通常先在客戶機中建立一對秘鑰檔案(公開金鑰和私密金鑰),然後將公開金鑰檔案放到伺服器中的指定位置。
注意:當密碼驗證和私密金鑰驗證都啟用時,伺服器將優先使用秘鑰驗證。
SSH的設定檔:
sshd服務的設定檔預設在/etc/ssh/sshd_config,正確調整相關配置項,可以進一步提高sshd遠程登入的安全性。
設定檔的內容可以分為以下三個部分:
1、常見SSH伺服器監聽的選項如下:
Port 22 //監聽的連接埠為22
Protocol 2 //使用SSH V2協議
ListenAdderss 0.0.0.0 //監聽的地址為所有地址
UseDNS no //禁止DNS反向解析
2、常見使用者登入控制選項如下:
PermitRootLogin no //禁止root使用者登入
PermitEmptyPasswords no //禁止空密碼使用者登入
LoginGraceTime 2m //登入驗證時間為2分鐘
MaxAuthTries 6 //最大重試次數為6
AllowUsers user //只允許user使用者登入,與DenyUsers選項相反
3、常見登入驗證方式如下:
PasswordAuthentication yes //啟用密碼驗證
PubkeyAuthentication yes //啟用秘鑰驗證
AuthorsizedKeysFile .ssh/authorized_keys //指定公開金鑰資料庫檔案
參考:http://dengqi.blog.51cto.com/5685776/1260038
突然有發現,我用的是ssh localhost,說22連接埠拒絕連結,當我查看ssh設定檔時發現連接埠號碼是3228。恍然大幅
查了相關資料 ssh -p3228 localhost,成功。
Linux--ssh: connect to host localhost port 22: Connection refused