클라이언트용 CentOS 7 클라우드 서버를 설정하는 중 소수의 SFTP 사용자 중 한 명의 비밀번호 대신 공개 RSA 키를 사용하도록 설정하는 데 문제가 있습니다.
키 설정에 대한 온라인 지침은 다음에서 찾을 수 있습니다.
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
모든 것이 내 마음 속에 자리 잡았습니다.