Linux SSH登陸有兩種:html
一、使用密碼驗證登陸linux
一般VPS或服務器開通後都是直接提供IP和root密碼,使用這種方式就是經過密碼方式登陸。若是密碼不夠強壯,並且沒有安裝DenyHosts之類的防止SSH密碼破解的軟件,那麼系統安全將存在很大的隱患。shell
二、使用密鑰驗證登陸
安全
基於密鑰的安全驗證必須爲用戶本身建立一對密鑰,並把共有的密鑰放在須要訪問的服務器上。當須要鏈接到SSH服務器上時,客戶端軟件就會向服務器發出請求,請求使用客戶端的密鑰進行安全驗證。服務器收到請求以後,先在該用戶的根目錄下尋找共有密鑰,而後把它和發送過來的公有密鑰進行比較。若是兩個密鑰一致,服務器就用公有的密鑰加密「質詢」,並把它發送給客戶端軟件(putty,xshell等)。客戶端收到質詢以後,就能夠用本地的私人密鑰解密再把它發送給服務器,這種方式是至關安全的。服務器
由於puttygen生成的密鑰有問題可能會出現:「Server refused our key」,最好使用XShell生成密鑰或者在遠程Linux VPS/服務器生成密鑰。session
一、用winscp,將/root/.ssh/下面(若是沒有則建立此目錄)下載到本地備用,在服務器上.ssh/目錄下,cat id_rsa.pub >> authorized_keys,再執行:chmod 600 /root/.ssh/authorized_keys 修改權限。dom
二、修改/etc/ssh/sshd_config 文件,將RSAAuthentication 和 PubkeyAuthentication 後面的值都改爲yes ,保存。若是這兩項前面有 # 符號說明是註釋掉的,須要去掉 # 符號。ssh
三、重啓sshd服務,Debian/Ubuntu執行/etc/init.d/ssh restart ;ide
CentOS執行:/etc/init.d/sshd restart 若是不存在能夠執行:service sshd restart。 不行的話使用 /bin/systemctl restart sshd.service測試
運行XShell,選擇菜單File->New,按以下提示填寫:
打開建立好的Session
若是設置沒問題就會登陸成功,出現用戶提示符。
將PasswordAuthentication yes 修改爲 PasswordAuthentication no
Debian/Ubuntu執行/etc/init.d/ssh restart ;CentOS執行:/bin/systemctl restart sshd.service
ok,設置完成。