ssh免密登錄配置方法及配置
直接上步驟,記我們本機為機器A,而機器B、機器C等是我們的服務器,我們要配置的是A到B、C等的 ssh 免密登錄。
1 在機器A上生成秘鑰對
ssh-keygen
會得到輸出:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/adenialzz/.ssh/id_rsa):
這里是問我們要對本次生成的秘鑰的命名,這里注意:
- 如果僅需要配置連接一臺機器(包括對 git 的連接),那就用默認的即可,直接回車
- 但是通常包括 git 我們不只需要連接一臺機器,這時我們就要將秘鑰名區分開來,命名隨意,但是建議按照實際連接的機器或git來命名,比如:
id_rsa_github
,id_rsa_gitlab
,id_rsa_for252
。而且如果我們需要連接多個服務器,需要之后在 config 文件中進行配置,不然機器不會知道我們用哪一個秘鑰對去連接哪一臺機器。
命名之后會得到輸出:
Enter passphrase (empty for no passphrase):
這里通常不需要設置,直接回車,然后得到:
Your identification has been saved in id_rsa_for252
Your public key has been saved in id_rsa_for252.pub
The key fingerprint is:
SHA256:2TmISorJeTc/oCy83FJh88VcJ7+e3cSkzGTysqvrqjE adenialzz@Junjie-Macbook.local
The key's randomart image is:
+---[RSA 3072]----+
| |
| o . |
| o . + |
| + = + + o . |
| . = o S + O + |
|.o.+ + + = o |
|+o+.oE. . = o |
|.+oo. =. + . . |
| o+. ..o++o.. |
+----[SHA256]-----+
到這里我們的秘鑰對就生成完畢了,可以在 ~/.ssh
目錄下看到兩個文件,即我們剛生成的私鑰 id_rsa_for252
和 公鑰 id_rsa_for252.pub
(具體名稱取決于你的命名)。
2 在服務器上設置
我們在本地機器A上配置秘鑰對好之后,需要將公鑰 id_rsa_for252.pub
中的內容放到服務器B、C上的 ~/.ssh/authorized_keys
文件中,此步有兩種方式:
-
在本地機器A,通過命令
ssh-copy-id -i ~/.ssh/id_rsa_for252.pub song@10.199.160.252
這一步會要求我們輸入服務器的密碼。
-
手動將直接將公鑰文件內容拷貝到服務器上
3 配置config文件
前面提到,如果我們需要連接多臺服務器,需要再配置本地機器A的 ~/.ssh/config
文件:
在 ~/.ssh/config
文件中按照對應 ip 增加下面內容即可:
Host 10.199.160.252HostName 10.199.160.252User songPreferredAuthentications publickeyIdentityFile /Users/adenialzz/.ssh/id_rsa_for252
把對應的 host、ip、user、秘鑰文件路徑換成自己的即可。
4 測試
然后我們來直接連測試一下:
ssh song@10.199.160.252
一切正常的話應該可以直接免密登錄成功。