一台linux使用SSH免密登录另一台Linux机器

 

使用A机器登录B机器。

一、在A上使用 ssh-keygen -t rsa命令生成公私钥,然后一直回车把公私钥存在默认路径就行

二、

(方式一)A执行    ssh-copy-id B            ,执行完该命令,会默认把A的公钥加到B的authorized_keys文件下(如果没有该文件,会创建并修改权限为,使登录用户拥有rw权限)。。这样A以后ssh登录B就不用密码了

注意:

ssh-copy-id默认是使用root用户。如果要其他用户,则按照如下格式:

 ssh-copy-id -i /home/es/.ssh/id_rsa.pub -p 22 es@local3

表示把当前机器的/home/es/.ssh/id_rsa.pub公钥发送到es@local3(local3机器的es用户目录的.ssh目录下)。

这样就可以使当前机器通过ssh es@local3登录local3机器的es用户了。

 

(方式二)

1、没有上面的好用。使用scp id_rsa.pub remoteHostname:/username/dir 把A的公钥远程发送到remoteHostname对应的主机下,并且发送到指定的/username/dir目录下)

2、在B机器上,允许A登录所使用的用户目录下,比如A想要使用B的root用户登录B机器,则在/root/目录下创建一个.ssh目录,在该目录中创建一个文件authorized_keys,将A的公钥追加到该文件中,并且authorized_keys文件的权限需要设置为只有当前用户可读写。

3、授权列表authorized_keys的权限必须是600   即rw,chmod 600 authorized_keys

上面三个步骤做完后,机器A就可以在A的本机使用命令

ssh hostnameB

登录B机器,不用再输入密码了

 

如果B机器还要允许C、D等机器使用root用户身份登录B机器,那么C、D都按照上面三步操作就行,C、D的公钥都是追加到B的root用户的authorized_keys文件中

如果其他机器想要以其他普通用户(如user1)身份远程登录B机器,那么就把其他机器的公钥放在B机器的user1用户目录下的authorized_keys文件中即可

 

 

你可能感兴趣的:(linux,ssh)