欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何轻松设置SSH免密登录?详细教程

最编程 2024-08-03 14:49:34
...

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 文件中,此步有两种方式:

  1. 在本地机器A,通过命令

    ssh-copy-id -i ~/.ssh/id_rsa_for252.pub song@10.199.160.252
    

    这一步会要求我们输入服务器的密码。

  2. 手动将直接将公钥文件内容拷贝到服务器上

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

一切正常的话应该可以直接免密登录成功。