ssh(secure shell)普遍用於遠程登陸Linux服務器。當咱們使用ssh登陸到遠程系統時,它會提示輸入密碼,而後只容許咱們登陸到服務器。有時咱們須要配置應用程序或腳本(主要是shell腳本),以便在對遠程系統執行ssh以後自動化要執行的任務。可是,若是咱們沒有配置基於密鑰的ssh,腳本將在每次運行時提示輸入密碼,這時咱們須要手動輸入密碼。爲了解決這個問題,咱們能夠選擇使用公鑰/私鑰概念。其中遠程服務器容許其餘系統基於密鑰進行ssh。sql
步驟1:生成ssh密鑰對shell
首先,須要生成一個密鑰對(rsa或dsa),可使用「-t」命令行開關指定選項rsa或dsa密鑰。若是不傳遞-t參數,它將默認建立RSA密鑰。服務器
1dom |
|
1ide 2工具 3spa 4命令行 5code 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
上面的命令將在〜/ .ssh目錄中建立兩個文件,以下所示。
一、〜/ .ssh / id_rsa [私鑰]
二、〜/ .ssh / id_rsa.pub [公鑰]
步驟2:將公鑰複製到遠程系統
讓咱們將系統的公鑰複製到遠程系統〜/ .ssh / authorized_key的密鑰文件中。咱們能夠手動或使用ssh-copy-id命令行工具執行此操做。
1 |
|
輸出:
1 2 3 4 5 |
|
它將提示輸入遠程系統的密碼。輸入遠程機器密碼並按Enter。
步驟3:驗證沒有密碼的SSH
如今咱們已經完成了全部工做,只需嘗試對遠程系統進行ssh。你將在不輸入密碼的狀況下登陸遠程系統。
1 |
|
上面的命令不會提示輸入登陸密碼。在任何狀況下,若是ssh命令提示輸入密碼,則意味着你的設置沒有正確配置,請重試全部步驟。