linux 自动认证登录SSH以及特殊错误
1.客户端生成公钥
ssh-keygen -t rsa
然后不用输入任何东西,连续按回车,生成id_rsa.pub 和id_rsa文件
2.将客户端的公钥黏贴到服务器上
登录服务器, 将客户端id_rsa.pub 的内容,
追加到 {账号的home目录}/.ssh/authorized_keys文件中
3.修改服务器ssh 配置,启用rsa认证方式
vim /etc/sshd_config
是sshd_config配置文件,不是ssh_config
sshd_config是作为ssh服务被连接时的配置文件
ssh_config是作为ssh服务客户端的配置文件
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_key
重启ssd服务
service sshd restart
4.ssh 目录的权限配置
使用如下指令,确保 $HOME/.ssh 目录只有所有者才有权写入:
chmod 700 ~/.ssh
5.authorized_keys 文件的权限配置
使用如下指令,确保其它用户对 authorized_keys 文件没有修改权限:
chmod 600 ~/.ssh/authorized_keys
特殊错误
正常来说,执行了以上步骤,一般服务器已经可以正常完成"自动认证"。
但有一些情况还是会失败,可以通过查看ssh日志文件 /var/log/secure ,其中
有一个错误:
Authentication refused: bad ownership or modes for directory /home/jufuns
原因是我之前为了方便部署,给home目录设置了777权限,因为权限过大反而导致 自动认证 失败,
将home目录权限改为700 即可。
chmod 700 ~/.