在linux服务器上,我们经常会需要在两台服务器之间相互传输文件,或者需要从这台服务器访问另外一台。而通常在传输文件或者登陆时,会需要你输入登陆的那台服务器的密码。如果我们操作频繁,每次输入密码就显得十分麻烦。而此时我们可以设置ssh无密码登陆,这样不管是登陆还是传输文件我们就不再需要密码了。下面简单介绍如何设置ssh无密码登陆。

__注意:__在两台服务器之间可以不用是root用户,其他用户也是可以的

  假设我们有服务器A简称为Master,使用的用户为admin,服务器B简称为Slaver,使用的用户为root。我们的目的是设置从Master无密码登陆到Slaver中。

__1.__我们先登陆到Master的admin用户的home目录下:

1
cd ~

__2.__在Master服务器上生成public key:

1
ssh-keygen -t rsa

__3.__进入到 ~/.ssh/ 目录下,我们就可以看到我们生成的public key。 有两个,一个是密钥id_rsa,一个是公钥id_rsa.pub。接下来我们需要将公钥从Master传输到Slaver机器中。注意:这里如果我们以后是想从这台机器的admin用户传输到Slaver的root用户下的话,我们需要的是在Master的admin用户下生成key传输到Slaver的root用户目录下的.ssh文件夹下。

1
scp id_rsa.pub root@SlaverIP:\~\.ssh

上述命令中root@SlaverIP为传输到Slaver机器的root用户,如果你是别的用户,比如admin用户,这里就修改为admin@SlaverIP就好。

__4.__登陆到Slaver的那台机器下,将Master的公钥添加到Slaver的授权密钥中

登陆到Slaver机器: ssh root@SlaverIP
进入.ssh目录下: cd ~\.ssh
将Master的公钥添加到Slaver的授权密钥中: cat id_rsa.pub >> authorized_keys

__5.__修改.ssh文件夹的权限

1
2
chmod 600 authorized_keys
chmod 700 -R ~/.ssh

这样我们实现了从Master到Slaver的无密码登陆。如果要从Slaver到Master的无密码登陆同样做上述操作就好。