最近公司要求使用跳板机连接服务器,导致原有的用户名/密码连接部署方式无法使用,故使用ssh-keygen生成公钥私钥进行免密登录;
1.说明:
'客户端'指的是你所使用的本地机器;
'服务端'指的是远程你要连接的机器;
2.在服务端生成公钥、私钥命令:
ssh-keygen -t rsa
一路回车即可,以root账号为例,该命令将在/root/.ssh目录下面产生一对密钥id-rsa和id-rsa.pub,其中id_rsa.pub是公钥。如果使用其他用户生成,会在相应家目录~/.ssh下;
3.然后在客户端/root/.ssh下面创建文件authorized_keys,如果已经有了就不用创建。然后把id_rsa.pub的内容复制到文件内;
4.检查权限
系统默认~/.ssh/authorized_keys这个文件的权限应该是owner具有读写权限,其他的都不能读写,即权限应该是600.如果在/etc/ssh/sshd_config 中设置了StrictModes yes则sshd会去检查~/.ssh/authorized_keys这个文件的文件权限。如果~/.ssh目录和owner的home目录可以被其他用户写,那也会出现问题。所以要设定下各自的权限;
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
5.尝试连接
ssh -l root 服务端IP
# 第一次连接输入yes即可。后续不再需要输入。