日常:
本地215 生成公钥

ssh-keygen -t rsa 按三次回车完成
cat /root/.ssh/id_rsa.pub #看到自己机器的公钥内容

线上

vi /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
--------------------------------
touch /root/.ssh/authorized_keys      #(假设已经存在这个文件, 跳过这条)
echo 公钥内容 >> /root/.ssh/authorized_keys 

ssh -p 端口 root@ip 测试下

问题描述:

服务器上不存在 .ssh 目录

mkdir /root/.ssh/
chmod 700 /root
chmod 600 /root/.ssh
touch /root/.ssh/authorized_keys
echo 公钥内容 >> /root/.ssh/authorized_keys 

死活登录不了,就是要输入密码。
网上很多文章说关闭 SELinux 而且还说很重要,但做为安全运维角度,是不应该这样做的。

最后处理方式 restorecon -r -vv /root/.ssh

restorecon -r -vv /root/.ssh #20180724配置的时候 只 需要这一句即可  restorecon -r -vv ~/.ssh
restorecon reset /root/.ssh context unconfined_u:object_r:admin_home_t:s0->unconfined_u:object_r:ssh_home_t:s0
restorecon reset /root/.ssh/authorized_keys context unconfined_u:object_r:admin_home_t:s0->unconfined_u:object_r:ssh_home_t:s

0

大概看了下这个命令,个人总结就是你创建的这个目录和权限 并没有进入 SELinux的缓存,你这样一下就好了。