ssh公钥登录
引言
今天同事说一个很久不用的服务器ssh忽然只能用公钥登录了,怀疑sshd的配置文件出错了(被篡改了?)。
挣扎
赶紧让他去修改sshd的配置文件
修改/etc/ssh/sshd_config文件
PasswordAuthentication no --> PasswordAuthentication yes
service sshd restart
结果报文件没有权限(无法打开成writing)
chmod 777 一下
没法chmod
尝试在单用户模式和各种编辑器去改都没用,echo >> 文件 也没有效果
这时候想起一下sshd竟然起不来了
查看详细信息报错Could not load host key
(密钥对丢失)
重新生成一下dsa和rsa的密钥
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
/usr/sbin/sshd
密码跳过
再执行service sshd start报错:
被too open搞蒙了,最后发现open不只有打开的意思,还有开放的意思。
将所有too open的文件全部chmod 600
sshd可以启动了。
接受
让同事把生成的密钥对拷出来,发现还不能用。
需要将公钥附加进去
cat ssh_host_dsa_key.pub >> ~/.ssh/authorized_keys
cat ssh_host_rsa_key.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
service sshd restart
重启sshd,xshell再连可以进了