ssh(secure shell)廣泛用於遠程登錄Linux服務器。當我們使用ssh登錄到遠程系統時,它會提示輸入密碼,然后只允許我們登錄到服務器。有時我們需要配置應用程序或腳本(主要是shell腳本),以便在對遠程系統執行ssh之后自動化要執行的任務。但是,如果我們沒有配置基於密鑰的ssh,腳本將在每次運行時提示輸入密碼,這時我們需要手動輸入密碼。為了解決這個問題,我們可以選擇使用公鑰/私鑰概念。其中遠程服務器允許其他系統基於密鑰進行ssh。
步驟1:生成ssh密鑰對
首先,需要生成一個密鑰對(rsa或dsa),可以使用“-t”命令行開關指定選項rsa或dsa密鑰。如果不傳遞-t參數,它將默認創建RSA密鑰。
1 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
上面的命令將在〜/ .ssh目錄中創建兩個文件,如下所示。
1、〜/ .ssh / id_rsa [私鑰]
2、〜/ .ssh / id_rsa.pub [公鑰]
步驟2:將公鑰復制到遠程系統
讓我們將系統的公鑰復制到遠程系統〜/ .ssh / authorized_key的密鑰文件中。我們可以手動或使用ssh-copy-id命令行工具執行此操作。
1 |
|
輸出:
1 2 3 4 5 |
|
它將提示輸入遠程系統的密碼。輸入遠程機器密碼並按Enter。
步驟3:驗證沒有密碼的SSH
現在我們已經完成了所有工作,只需嘗試對遠程系統進行ssh。你將在不輸入密碼的情況下登錄遠程系統。
1 |
|
上面的命令不會提示輸入登錄密碼。在任何情況下,如果ssh命令提示輸入密碼,則意味着你的設置沒有正確配置,請重試所有步驟。