Linux服务器配置免密登陆
在工作中,有时候需要在两台机子之间配置免密登陆。可以按以下步骤进行
-
在本地机器上执行
选择对应的账户登陆本地机器
ssh-keygen -t rsa (然后一路回车)
在用户的家目录下会生成.ssh目录 -
将生成的公钥复制到远程机器上的~/.ssh/authorized_keys中,在本地机执行
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100 --root对应的是登陆远程机上使用的用户,可以使用其它用户
正常结束,则完成。
如果报了,ksh:ssh-copy-id:not found错误,换另外方式
cat ~/.ssh/id_*.pub|ssh root@远程ip ‘cat>>.ssh/authorized_keys’
远程机对应用户的的用户目录下,必须有 .ssh文件夹,如果没有,在远程机上执行 ssh-keygen -t rsa (一路回车) -
登陆验证
ssh root@远程id -
登陆不上的原因
a.权限
sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
远程服务器用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600b.主机名问题
查看远程机器上的 ~/.ssh/authorized_keys 文件,在文件的末尾是 用户名@主机名,如moia@DSDEV,检查远程机上/etc/hosts是否配置了DSDEV主机名。c.远程用户创建时有问题
如果各种方式,都连接不了,则远程服务器尝试新建一个用户进行配置。d.查看 /var/log/secure文件,判断是什么错误