如何通過(guò) ssh 公鑰連接主機(jī)
使用密碼登錄厚骗,每次都必須輸入密碼,非常麻煩兢哭。好在SSH還提供了公鑰登錄领舰,可以省去輸入密碼的步驟。
所謂"公鑰登錄"迟螺,原理很簡(jiǎn)單冲秽,就是用戶將自己的公鑰儲(chǔ)存在遠(yuǎn)程主機(jī)上。登錄的時(shí)候煮仇,遠(yuǎn)程主機(jī)會(huì)向用戶發(fā)送一段隨機(jī)字符串劳跃,用戶用自己的私鑰加密后,再發(fā)回來(lái)浙垫。遠(yuǎn)程主機(jī)用事先儲(chǔ)存的公鑰進(jìn)行解密,如果成功,就證明用戶是可信的夹姥,直接允許登錄shell杉武,不再要求密碼。
這種方法要求用戶必須提供自己的公鑰辙售。如果沒(méi)有現(xiàn)成的轻抱,可以直接用ssh-keygen生成一個(gè)
$ ssh-keygen
運(yùn)行上面的命令以后,系統(tǒng)會(huì)出現(xiàn)一系列提示旦部,可以一路回車祈搜。其中有一個(gè)問(wèn)題是,要不要對(duì)私鑰設(shè)置口令(passphrase)士八,如果擔(dān)心私鑰的安全容燕,這里可以設(shè)置一個(gè)。
運(yùn)行結(jié)束以后婚度,在$HOME/.ssh/目錄下蘸秘,會(huì)新生成兩個(gè)文件:id_rsa.pub和id_rsa。前者是你的公鑰蝗茁,后者是你的私鑰醋虏。
這時(shí)再輸入下面的命令,將公鑰傳送到遠(yuǎn)程主機(jī)host上面:
$ ssh-copy-id user@host
好了哮翘,從此你再登錄颈嚼,就不需要輸入密碼了。
如果還是不行饭寺,就打開(kāi)遠(yuǎn)程主機(jī)的/etc/ssh/sshd_config這個(gè)文件阻课,檢查下面幾行前面"#"注釋是否取掉。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
然后佩研,重啟遠(yuǎn)程主機(jī)的ssh服務(wù)柑肴。
// ubuntu系統(tǒng)
service ssh restart// debian系統(tǒng)
/etc/init.d/ssh restart