1 配置服务器/etc/ssh/sshd_config文件。
去掉以下内容的注释符“#”或修改成如下方式。
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PermitRootLogin no #不允许root用户登陆ssh,目的是为了系统安全。 Protocol 2 #选择第二种协议,目的是为了系统的安全。
2 在客户端生成一对公私钥,将公钥复制到服务器的user/.ssh/authorized_keys文件中。
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa $ scp ~/.ssh/id_dsa.pub user@Sever's_IP:/home/user/.ssh/ $ ssh user@Sever's_IP $ cat /home/user/.ssh/id_dsa.pub >> /home/user/.ssh/authorized_keys
3 修改远程服务器/home/user/.ssh/authorized_keys的权限为600,即可通过OpenSSH远程无密码登陆服务器。
$ chmod 600 ~/.ssh/authorized_keys
4.添加id_rsa到ssh-agent。如果连接服务器返回“Agent admitted failure to sign using the key”。
$ ssh-add 再次连线就正常了。
5. 设置 selinux
若没有关闭 selinux,则依然不能无密码登录,关闭即可。
$ sudo setenforce 0
此外,若用户的家目录权限过大,比如为777,则也会导致即使正确进行以上设置后,任然需要输入密码登录。