場景:伺服器a 採用ssh 登入伺服器b,沒有任何特殊設定情況下,採用ssh host.b 會出現提示password: 讓輸入密碼。如何可以不手工輸入密碼?
解決方案:
這裡-t dsa表示採用dsa加密方式,回車後會讓你輸入私鑰,最後在.ssh目錄下生成兩個檔案id_dsa和id_dsa.pub,分別表示私鑰和公鑰。
將公鑰copy到要登入的機器b上去,並在b的.ssh目錄下,然後將id_dsa.pub的內容追加到authorized_keys檔案中。
此時,b伺服器下有兩個檔案,id_dsa.pub和 authorized_keys。
此時我們可以通過ssh host.b登入b伺服器了,不會提醒password了,不過。這個時候你仍然會看到這樣的資訊。
會讓你輸入是否連線b伺服器,輸入yes,則會在a伺服器本地生成乙個known_hosts檔案,內部是a訪問過的伺服器,這個檔案的作用是:發現b伺服器的公鑰和本地known_hosts的公鑰不一致,就會提醒你是否連線上去。一般輸入一次,以後就不會再提示了。
接著會出現以下資訊:
仍然需要你輸入私鑰。而且以後不管你登陸幾次,都會提醒你輸入私鑰,沒有達到我們的要求,怎麼辦呢?
ssh-agent是用於管理金鑰,ssh-add用於將金鑰加入到ssh-agent中,ssh可以和ssh-agent通訊獲取金鑰,這樣就不需要使用者手工輸入密碼了。
eval `ssh-agent`ssh-add
enter passphrase for /home/qingxu/.ssh/id_dsa:
不過由於每次登入都需要設定一次,所以最好將命令放到~/.bash_profile中。
另外,可以採用keychain來處理這一步,參考:
ssh 免密碼登入
ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh keygen t rs...
ssh 免密碼登入
ssh 免密碼登入 ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh k...
ssh免密碼登入
實現原理 主機a 產生公鑰和金鑰,將主機a的公鑰傳送到主機b 主機b 接收主機a傳送的公鑰 主機a ssh請求登入到主機b 主機b 傳送給主機a一串字元 主機a 收到主機b傳送的字元,使用金鑰進行加密,並傳送回到主機b 主機b 接收到主機a使用金鑰加密後的字元,使用主機a的公鑰執行一定演算法進行對比...