ssh免密登陆远程linux服务器

43 阅读1分钟

在工作的时候需要经常连接各个远程服务器,正常情况下每次连接远端服务器时都需要输入登陆账户的密码,每次输入都比较麻烦,希望走一个免登陆的效果。

1、生成公私钥

ssh-keygen -t rsa -C "xxx@xxx.com"

如果本地.ssh文件夹下已近有存在了公私钥,那可以跳过该步骤

2、公钥上传到目标服务器中

假设当前在.ssh目录下,执行下列代码

scp id_rsa_xx.pub root@remoteip:/root/.ssh/authorized_keys

这里还需要输入一次远端服务器的登陆密码 在这里插入图片描述 在远端服务器的.ssh文件夹下就有了authorized_keys 文件。 注意此处的文件名不可随意命名,可以 authorized_keys2,authorized_keys3的方式但如果命名为hello,就不work了。

3、修改本地config文件

到这里基本即将大功告成,需要在本地.ssh文件加下,添加一下访问目标ip的时候需要使用那一个私钥与之配对,因为如果本地有配置多个公私钥的话,默认是去id_rsa的私钥去配对,如果上传的是id_rsa_xx的话,那就会失败,因此需要告诉电脑,当连接目标地址的时候,需要使用本地那一对私钥与之配对。 修改.ssh/cnfig配置文件 在这里插入图片描述

模式大概如下:

# host可以是域名也可以是ip地址
Host gitlab.yjian.site
# hostname没有也可不添加
HostName gitlab.yjian.site
PreferredAuthentications publickey
#指定访问上面配置的host的时候,使用本地那一对私钥与之配对
IdentityFile ~/.ssh/id_rsa_yjian

上面几步配置完之后,就可以直接免密登陆远程服务器了