为客户端设置 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 实例后,我经历了以下过程:
- 添加新用户(并设置密码)
- 测试密码登录
- 锁定账户
- 测试密码登录
- 将 ssh 密钥添加到用户帐户
- 测试ssh密钥登录
添加新用户:
[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.
测试密码登录:
[guzzijason@macbook ]$ ssh [email protected] [email protected]'s password: [demo_user@ip-172-31-80-91 ~]$
在服务器上锁定帐户
[centos@ip-172-31-80-91 ~]$ sudo passwd -l demo_user Locking password for user demo_user. passwd: Success
测试密码登录(再次;这次应该会失败)
[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).
将 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 ~]#
测试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 yes
sshd_config
这一切都在我的心里设定了。