亚马孙机器可能出现权限问题导致ssh无法秘钥登录的情况
一般都是amazon会遇到,目前ali的机器没遇到过
情况是新机器,然后ssh脚本创建目录和用户和拷贝秘钥等等,后面用该新用户的秘钥登录发现一直无法登录。
把sshd的log改为debug,查看日志得出最重要的报错如下:
Could not open authorized keys '/data/home/user00/.ssh/authorized_keys': Permission denied
随后检查了.ssh的权限700和600都正常,甚至用
/usr/sbin/sshd -d -p 39999
起了个临时的端口,用这个端口和秘钥能正常登录,但是就是22端口就没权限!
最后查了一些资料: 估计是安全上下文的问题导致没有权限
解决思路:
新建个authorized_keys2 文件,chmod 600,修改sshd_config的默认authorized_keys改为 authorized_keys2
临时启用非标准用户主目录位置的公钥SSL登录:
sudo chcon -t ssh_home_t /data/home/user00/.ssh/authorized_keys2 /data/home/user00/.ssh/ ls -ldZ /data/home/user00/.ssh/authorized_keys2 /data/home/user00/.ssh/
并且使SELinux设置永久运行(参考: https://linux.die.net/man/8/ssh_selinux)
sudo semanage fcontext -a -t ssh_home_t /data/home/user00/.ssh/authorized_keys2 sudo semanage fcontext -a -t ssh_home_t /data/home/user00/.ssh sudo restorecon -R -v /data/home/user00/.ssh/
最后重启sshd,再次链接,成功!
PS:感觉不用创建authorized_keys2文件应该也可以