저는 SSH 서비스에 대한 비밀번호 로그인을 비활성화할 수 있는 스크립트를 생성하도록 지정받았습니다. /etc/sshd_config 파일을 편집하면 이 작업을 수행할 수 있다는 것을 알고 있지만 강사는 제가 살펴보아야 할 파일이 /etc/password 파일이라고 언급했습니다. 이것이 이 작업에 대한 나의 단서였습니다. 이것이 제가 한 일입니다. 사용자에서 "x" 기호를 제거했습니다. 이 필드는 해시된 비밀번호용으로 예약되어 있다고 생각합니다.
원래의
pi:x:1000:1000:,,,:/home/pi:/bin/bash
편집 후:
pi::1000:1000:,,,:/home/pi:/bin/bash
결과: 키가 없습니다. 비밀번호 창만 다시 입력할 수 있습니다.
명확성을 위해 업데이트됨: 이 스크립트는 pi 서버에 로그인하기 위한 공개 및 개인 키에 응답하는 데 사용해야 합니다. 즉, 보안 강화 기능을 만들어서 비밀번호 없는 로그인을 사용해 보았습니다.
답변1
파일을 직접 편집 할 필요는 없지만 /etc/passwd
원하는 경우 편집할 수 있습니다.
passwd --lock pi # Lock the "pi" user account
잠긴 계정을 잠금 해제하는 방법을 포함하여 더 많은 옵션을 보려면 를 사용하세요 man passwd
. 말할 것도 없이 이 명령은~ 해야 하다루트 권한으로 실행하세요.
이제 간단한 편집으로 강제할 수 있는 SSH 비밀번호 기반 인증을 비활성화하고 싶다고 설명하기 위해 질문을 편집하신 것을 확인했습니다 /etc/ssh/sshd_config
.
PasswordAuthentication no
서비스를 다시 시작하는 것을 잊지 마세요.systemctl restart sshd
답변2
@roaima가 맞는 passwd
명령이나 sshd_config가 아마도 여러분이 원하는 것일 수도 있지만 몇 가지 대안을 지적하고 싶습니다.
1) 암호 시작 부분에 느낌표를 추가합니다(실제로는 이렇게 합니다 passwd -l
. 매뉴얼 페이지를 참조하십시오). 실제 비밀번호 해시는 /etc/shadow
가 아닌 에 있습니다 /etc/passwd
.
2) 계정 usermod --expiredate 1
(또는 passwd 매뉴얼 페이지의 과거 날짜)을 비활성화("만료 전")합니다.
chsh -s /usr/sbin/nologin
3) 또는 편집을 통해 쉘을 "/usr/sbin/nologin"으로 변경합니다 /etc/passwd
. 많은 데비안 아이들은 전용 계정(아파치, 메일, sshd 등)에 대한 주입 공격을 방지하기 위해 시스템/서비스 계정을 식별하는 데 이를 사용합니다.