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.252
HostName 10.199.160.252
User song
PreferredAuthentications publickey
IdentityFile /Users/adenialzz/.ssh/id_rsa_for252
把对应的 host、ip、user、秘钥文件路径换成自己的即可。
4 测试
然后我们来直接连测试一下:
ssh song@10.199.160.252
一切正常的话应该可以直接免密登录成功。
|