本篇文章將介紹關於在Linux系統上設定ssh金鑰。在使用ssh金鑰對的Linux系統中,我們也可以說它是無密碼的ssh。
ssh(secure shell)廣泛用於遠端登入Linux伺服器。當我們使用ssh登入遠端系統時,它會提示輸入密碼,然後只允許我們登入伺服器。有時我們需要設定應用程式或腳本(主要是shell腳本),以便在對遠端系統執行ssh之後自動化要執行的任務。但是,如果我們沒有配置基於密鑰的ssh,腳本將在每次運行時提示輸入密碼,這時我們需要手動輸入密碼。為了解決這個問題,我們可以選擇使用公鑰/私鑰概念。其中遠端伺服器允許其他系統基於密鑰進行ssh。
步驟1:產生ssh金鑰對
#首先,需要產生一個金鑰對(rsa或dsa),可以使用「- t”命令列開關指定選項rsa或dsa密鑰。如果不傳遞-t參數,它將預設建立RSA金鑰。
$ ssh-keygen -t rsa
Generating public/private rsa key pair. Enter file in which to save the key (/home/rahul/.ssh/id_rsa): Created directory '/home/rahul/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/rahul/.ssh/id_rsa. Your public key has been saved in /home/rahul/.ssh/id_rsa.pub. The key fingerprint is: SHA256:GZQ3tJffEUimdMZHIG3LcpvdkOaogwXBtWeaM2ejzYY rahul@tecadmin The key's randomart image is: +---[RSA 2048]----+ | ..+oo+*+o | | .+ +o** ..| | .oooB oo | | .o B =+..| | S.= *+=.o| | .X.+...| | oE.+ | | . o. | | . | +----[SHA256]-----+
上面的命令將在〜/ .ssh目錄中建立兩個文件,如下所示。
1、〜/ .ssh / id_rsa [私鑰]
2、〜/ .ssh / id_rsa.pub [公鑰]
步驟2:將公鑰複製到遠端系統
讓我們將系統的公鑰複製到遠端系統〜/ .ssh / authorized_key的金鑰檔案中。我們可以手動或使用ssh-copy-id命令列工具執行此操作。
$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.10.20
輸出:
21 root@192.168.10.20's password: Now try logging into the machine, with "ssh '192.168.10.20'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
它將提示輸入遠端系統的密碼。輸入遠端機器密碼並按Enter。
步驟3:驗證沒有密碼的SSH
現在我們已經完成了所有工作,只需嘗試對遠端系統進行ssh。你將在不輸入密碼的情況下登入遠端系統。
$ ssh root@192.168.10.20
上面的指令不會提示輸入登入密碼。在任何情況下,如果ssh指令提示輸入密碼,表示你的設定沒有正確配置,請重試所有步驟。
這篇文章到這裡就已經全部結束了,更多其他精彩內容可以關注php中文網的其他相關欄位教學! ! !
以上是如何在Linux上設定SSH密碼以進行無密碼登入的詳細內容。更多資訊請關注PHP中文網其他相關文章!