使用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文件中即可