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):
这里通常不需要设置,直接回车,然后得到:
到这里我们的秘钥对就生成完毕了,可以在 ~/.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 [email protected]
这一步会要求我们输入服务器的密码。
手动将直接将公钥文件内容拷贝到服务器上
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 [email protected]
一切正常的话应该可以直接免密登录成功。
评论0