centos下需要配置使用key登录,并且要禁止root登录
下面的操作都是用root来设置的
1.添加新用户 例如用户名leisiyuan
useradd leisiyuan
2.设置密码
passwd leisyuan
3.给新用户添加到root权限组
运行visudo命令,找到root ALL=(ALL) ALL,在下面添加一行 ,然后保存即可
leisiyuan ALL=(ALL) ALL
然后使用ssh客户端 用新用户名进行登录测试 确认无误
5.更改ssh服务器配置 允许使用证书登录
vi /etc/ssh/sshd_config
找到如下三句,把#去掉
#RSAAuthentication yes #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys 改为 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
然后重启ssh服务器生效
service sshd restart
5.生成证书 如果已经有证书就跳过该步骤 约定公钥名称为key.pub 私钥为key
ssh-keygen -t rsa
显示Enter file in which to save the key (/root/.ssh/id_rsa):的时候 输入要保存秘钥的位置 直接输入key即可 就会在当前目录产生秘钥
接着Enter passphrase (empty for no passphrase):输入秘钥的密码 这里我设置成test123
接着Enter same passphrase again:就再输入一遍秘钥的密码
执行完后就在当前目录生成两个文件 一个key(私钥),一个key.pub(公钥)
6.复制公钥到指定目录
mkdir /home/leisiyuan/.ssh cp key.pub /home/leisiyuan/.ssh/authorized_keys chown leisiyuan -R /home/leisiyuan/.ssh/
restorecon -FRvv /home/leisiyuan/.ssh/
chmod 751 /home/leisiyuan
chmod 751 /home/leisiyuan/.ssh/authorized_keys
做完这一步 就可以测试用证书登录了,确认无误再进行下一步
4.禁止root直接登录 禁止密码登录
vi /etc/ssh/sshd_config
找到#PermitRootLogin yes替换为PermitRootLogin no
找到#PasswordAuthentication yes替换为PasswordAuthentication no
5.重启sshd服务器 使配置生效
service sshd restart