实现root账户ssh配私钥登录远程主机(CentOS 7.6)
增加新用户
在root账户下
增加用户:useradd admin
设置密码:passwd admin
增加root权限:visudo
进入文本后找到root ALL=(ALL) ALL,另起一行,加入admin ALL=(ALL) NOPASSWD:ALL
su admin
切换到新用户 再使用sudo su -
切换回root,说明权限正常,进行下一步
切换到root,关闭root登录
sudo su -
vim /etc/ssh/sshd_config
找到#PermitRootLogin yes去掉#把yes改为no
systemctl restart sshd
重启服务并生效
切换到新用户,添加公钥
su admin
cd /home/admin
回到新用户根目录下
sudo rm -rf /home/admin/.ssh
确保之前添加失败的文件夹及文件已被删掉
mkdir .ssh
cd .ssh
vim authorized_keys
三次命令分开执行,切记不要用vim .ssh/authorized_keys
,这样权限会出问题!!
authorized_keys中粘入公钥格式:ssh-rsa AAAAB3N…== skey_508820
执行完这一步就可以私钥访问主机了,如果不行就加权限试试,或者就重来一遍吧,哈哈!!
chmod 700 /home/admin/.ssh
chmod 644 /home/admin/.ssh/authorized_keys
这套非root用户添加公钥的SOP,填了不少坑,请认真执行,亲测百分百有效!!!期间参考过如下两篇文章:
拒绝ssh远程暴力破解
这篇文章的方法三是个坑,被坑了好久才发现是少了添加公钥的步骤,接着又遇到了权限坑!!
Putty server refused our key的三种原因和解决方法
这篇文章的第一段说到了关键,添加公钥要注意权限问题,于是我摸索出了最简单的添加步骤如上!!