如何在Linux上設置SSH密碼以進行無密碼登錄

本篇文章將介紹關于在linux系統上設置ssh密鑰。在使用ssh密鑰對的Linux系統中,我們也可以說它是無密碼的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中文網的其他相關欄目教程!!!

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享