解決ubuntu 下 SSH無法連線的問題
使用Ubuntu,經常需要需要SSH遠端連線,但是有時候會出現問題,難以捉摸,下面參考別人的,在結合自己的嘗試總結下吧。
伺服器配完ubuntu系統以及LNMP環境以後,想用WINSCP遠端登入,就需要開啟SSH服務才能支援。
SSH服務分為客戶端和伺服器。顧名思義,我想用putty遠端登入Ubuntu伺服器,所以需要安裝SSH server。
OK,下面介紹如何開啟SSH服務。
一、檢查是否開啟SSH服務
因為Ubuntu預設是不安裝SSH服務的,所以在安裝之前可以檢視目前系統是否安裝,通過以下命令:
ps -e |grep ssh
輸出的結果ssh-agent表示ssh-client啟動,sshd表示ssh-server啟動。我們是需要安裝服務端所以應該看是否有sshd,如果沒有則說明沒有安裝。
二、安裝SSH服務
1 sudo apt-get install openssh-client 客戶端 2 sudo apt-get install openssh-server 伺服器
或者
apt-get install ssh
三、啟動SSH服務
sudo /etc/init.d/ssh start
四、修改SSH配置檔案
可以通過SSH配置檔案更改包括埠、是否允許root登入等設定,配置檔案位置:
/etc/ssh/sshd_config
預設是不允許root遠端登入的,可以再配置檔案開啟。
sudo vi /etc/ssh/sshd_config
找到PermitRootLogin without-password 修改為PermitRootLogin yes (本人遇到過)
五、重啟SSH服務
service ssh restart
即可通過winscp 、putty使用ROOT許可權遠端登入。
啟用root使用者:sudo passwd root //修改密碼後就啟用了。
客戶端如果是ubuntu的話,則已經安裝好ssh client,可以用下面的命令連線遠端伺服器。
$ ssh xxx.xxx.xxx.xxx
簡單介紹下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 //指定公鑰資料庫檔案
以前出現問題,不知道怎麼解決,後來發現需要修改/etc/ssh/sshd_config,把裡面的欄位修改合適,基本就沒有問題了,PermitEmptyPasswords no //禁止空密碼使用者登入,就是上次遇到的問題,之前是禁止root登入的,修改之後,就解決啦,如果下次遇到同樣的問題,記得去檢視下這個檔案了,或許就能迎刃而解了。
原文連結:https://blog.csdn.net/qq_42130526/article/details/119972366