如何配置ssh服務使得不用輸入賬號密碼即可連接遠程主機

我們知道,ssh協議可以通過輸入賬號名和密碼來連接遠程的服務器。那么,可以免去輸入賬號和密碼嗎,直接登錄。答案是可以的,并且在日常工作中,這種需求也是常見的。比如,使用scp來做異地備份,想要把scp寫入到crontab中,但是在crontab肯定不能夠輸入賬號密碼的,那么就需要做免賬號密碼登錄了。

ssh是一種非對稱加密協議,有公鑰和私鑰。公鑰是用來加密信息用的,各個主機中會在自己的家目錄的.ssh目錄下的known_hosts文件中存放其他主機的公鑰。想要做免賬號密碼,關鍵點就是這個公鑰。

假設一臺服務器主機SERVER,一臺客戶機CLIENT,客戶機想要免登陸連接SERVER。那么只需將客戶機的公鑰追加到SERVER機的~/.ssh/authorized_keys末尾即可。下面分兩種情況演示如何免密碼登錄:

  • 客戶機為windows系統

  • 客戶機為linux系統

客戶機為windows系統

首先第一步需要去生成秘鑰對,在這里,我們使用git工具來生成秘鑰對(如何在windows系統上安裝git,這個自己去查詢,非常的簡單,一路next即可)。

ssh-keygen

在git終端輸入上述命令后,會有一系列的提示信息,直接輸入ENTER鍵(共需輸入三次ENTER)。之后,就可以在$HOMT/.ssh/目錄下看到公鑰以及私鑰,以pub結尾的是公鑰。

admin@LAPTOP-7P19B9SH?MINGW64?~/.ssh $?ll total?13 -rw-r--r--?1?admin?197121?1679??5月??3??2019?id_rsa -rw-r--r--?1?admin?197121??398??5月??3??2019?id_rsa.pub

接下來就把該公鑰上傳到服務器上,然后把該公鑰信息追加到~/.ssh/authorized_keys中。

#?cat?id_rsa.pub?>>?.ssh/authorized_keys

下面演示如何使用xshell來免密碼登錄

第一步、輸入遠程主機的IP

如何配置ssh服務使得不用輸入賬號密碼即可連接遠程主機

第二步、點擊用戶身份驗證,然后選擇方法為Public Key。然后輸入用戶名,這里我們填root。最后選擇密鑰,注意這里需要選擇是的私鑰,而不是公鑰。

如何配置ssh服務使得不用輸入賬號密碼即可連接遠程主機

這兩步設置好了后,就完成了免密碼登錄了。

客戶機為linux主機

第一步也是生成秘鑰對

#?ssh-keygen?-t?rsa Generating?public/private?rsa?key?pair. Enter?file?in?which?to?save?the?key?(/root/.ssh/id_rsa):? Enter?passphrase?(empty?for?no?passphrase):? Enter?same?passphrase?again:? Your?identification?has?been?saved?in?/root/.ssh/id_rsa. Your?public?key?has?been?saved?in?/root/.ssh/id_rsa.pub. The?key?fingerprint?is: SHA256:GCyx2cSYE6yR7xCuUVOF0Omvp5fEoxv0Y2wOQvMRB98?root@lijia The?key's?randomart?image?is: +---[RSA?2048]----+ |??.*=Oo??????????| |??*?OX..?????????| |?o?B=.*?E????????| |.?+?o+?o?????????| |?ooooo.?S????????| |..?+.+=??????????| |??.?++*o?????????| |???.o*+.?????????| |????o=.??????????| +----[SHA256]-----+

第二步,將剛生產的公鑰傳送給另一臺機器

#?ssh-copy-id?root@121.***.***.64 /usr/bin/ssh-copy-id:?INFO:?Source?of?key(s)?to?be?installed:?"/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id:?INFO:?attempting?to?log?in?with?the?new?key(s),?to?filter?out?any?that?are?already?installed /usr/bin/ssh-copy-id:?INFO:?1?key(s)?remain?to?be?installed?--?if?you?are?prompted?now?it?is?to?install?the?new?keys root@121.196.12.64's?password:? Number?of?key(s)?added:?1 Now?try?logging?into?the?machine,?with:???"ssh?'root@121.***.***.64'" and?check?to?make?sure?that?only?the?key(s)?you?wanted?were?added.

第三步,登錄遠程主機

#?ssh?root@121.196.12.64 Welcome?to?Alibaba?Cloud?Elastic?Compute?Service?! Activate?the?web?console?with:?systemctl?enable?--now?cockpit.socket Last?login:?Fri?Nov?20?10:28:37?2020?from?111.38.123.86 #?免密碼登錄成功

更多相關技術文章,請訪問linux系統教程欄目!

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