锁定帐户密码并改为使用 RSA 密钥

锁定帐户密码并改为使用 RSA 密钥

为客户端设置 CentOS 7 云服务器,在将其设置为使用公共 RSA 密钥而不是少数 SFTP 用户之一的密码时遇到了问题。

在以下位置找到了有关设置密钥的在线指南:

https://debian-administration.org/article/530/SSH_with_authentication_key_instead_of_password

客户端提供了一个公钥文件,我使用“ssh-copy-id”命令将其复制到服务器。根据我得到的答复,一切都很好。

然后我使用“passwd -l”命令锁定该帐户。重置服务器并检查,系统确认密码已锁定:

testuser1 LK 2018-09-17 0 99999 7 -1(密码已锁定。)

但是,我仍然可以在未安装私钥的计算机上使用该帐户的密码登录。

因此,我做了更多的研究,并发现了另一个教程,其中说您可以通过在 etc/ssh/sshd_config 文件中将 PasswordAuthentication 设置为 no 来强制使用 RSA 密钥,但这引起了一个担忧,因为其他用户不使用 RSA 密钥进行登录。

我是否做错了什么,或者我可以采取其他措施来禁用此单个帐户的密码?有没有办法允许某些用户使用密码,同时允许其他用户使用 RSA 密钥?

答案1

在 AWS 中启动一个全新的 CentOS 实例后,我经历了以下过程:

  1. 添加新用户(并设置密码)
  2. 测试密码登录
  3. 锁定账户
  4. 测试密码登录
  5. 将 ssh 密钥添加到用户帐户
  6. 测试ssh密钥登录

  1. 添加新用户:

    [centos@ip-172-31-80-91 ~]$ sudo useradd -c "Demo User" -m demo_user
    [centos@ip-172-31-80-91 ~]$ sudo passwd demo_user
    Changing password for user demo_user.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
    
  2. 测试密码登录:

    [guzzijason@macbook ]$ ssh [email protected]
    [email protected]'s password:
    [demo_user@ip-172-31-80-91 ~]$
    
  3. 在服务器上锁定帐户

    [centos@ip-172-31-80-91 ~]$ sudo passwd -l demo_user
    Locking password for user demo_user.
    passwd: Success
    
  4. 测试密码登录(再次;这次应该会失败)

    [guzzijason@macbook ]$ ssh [email protected]
    [email protected]'s password:
    Permission denied, please try again.
    [email protected]'s password:
    Permission denied, please try again.
    [email protected]'s password:
    [email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
    
  5. 将 ssh 密钥添加到服务器上的用户帐户:

    [centos@ip-172-31-80-91 ~]$ sudo su -
    Last login: Mon Sep 17 22:07:43 UTC 2018 on pts/0
    [root@ip-172-31-80-91 ~]# umask 077
    [root@ip-172-31-80-91 ~]# mkdir /home/demo_user/.ssh
    [root@ip-172-31-80-91 ~]# echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDT+PautYetQxI+J8jshx2bZkMyuxd7dHBlCKjgIr9Y869RP+xzgvFFs1oCzAo/Q8Tn3Pz2htI4VN9h3LVsX+JuK3Omf+/vs6I21rIpDE2m/qhO5JH+2gflrsmhHRziHCbokoIr/LYIgkWAzgpiJ4tr2NWc8b32NggepIljfXBMm9TuuorYFNKqG8hpiHAsj5OugBiJUPyuBzPUlvFYdXuT0ireVlNgQcidi873psOWL9QQMrxTZYjd+Ucphk48otp/x7q3LD2luKXkfEsKyMgyVSApSfjdakh2ihJnfvhAfstAN+iuFPu1EYg5+4mUj0Z028TbxSn1hO5ijpgQDh8h guzzijason@macbook" >>/home/demo_user/.ssh/authorized_keys
    [root@ip-172-31-80-91 ~]# chown -R demo_user /home/demo_user/.ssh
    [root@ip-172-31-80-91 ~]# ls -ld $(find /home/demo_user/.ssh)
    drwx------. 2 demo_user root  29 Sep 18 02:25 /home/demo_user/.ssh
    -rw-------. 1 demo_user root 400 Sep 18 02:25 /home/demo_user/.ssh/authorized_keys
    [root@ip-172-31-80-91 ~]#
    
  6. 测试ssh密钥登录

    [guzzijason@macbook ]$ ssh -i .ssh/demo_user [email protected]
    Last login: Tue Sep 18 02:28:18 2018 from xxx
    [demo_user@ip-172-31-80-91 ~]$
    

笔记:.ssh为用户设置 ssh 密钥时的一个常见错误是对目录和文件没有正确的所有权或权限authorized_keys。这些非常重要!如果这些权限设置不严格,ssh密钥认证将会失败。

还: PasswordAuthentication yessshd_config这一切都在我的心里设定了。

相关内容