[sshd] Ubuntu 에서 사용자 별로 로그인 방법 다르게 지정하기
기록용으로 남깁니다.
우분투 20.04 기준 sshd 옵션은 /etc/ssh/sshd_config 에 존재합니다.
이 파일을 열어보면 다양한 옵션들이 있습니다.
제가 사용하려는 로그인 방법은 인증서와 비밀번호입니다.
각각 PasswordAuthentication, PubkeyAuthentication 설정인데 문제는 주석 처리된 것을 활성화하든 붙여넣든 모든 계정에 적용이 되는 것입니다.
어떤 계정은 비밀번호로 접근하게 하고 싶고, 어떤 계정은 인증서로만 가능하게 하고 싶은데 위 설정을 사용해야 하긴 하는데 그냥 쓰면 전역적으로 다 적용되고 하니 머리가 아팠습니다.
일단 시스템에 계정이 2개 있다고 가정해봅시다. 임시로 열어놓은 temp 라는 계정과 원래 관리 용도로 써오던 admin 이라는 계정이라고 합시다.
admin 이라는 계정이 adduser 등의 명령으로 temp 라는 계정을 막 만든 뒤라면 /etc/ssh/sshd_config 파일을 열어서 기존의 PasswordAuthentication, PubkeyAuthentication 설정을 찾아서 모두 주석처리해놓습니다. 그렇지 않으면 이제 지정할 설정이 제대로 적용되지 않을 수가 있습니다.
적당한 곳(보통 설정 파일 맨 아래)에 다음 내용을 작성합니다.
temp 라는 계정은 비밀번호 로그인으로 로그인합니다. 만약 이 계정에 대해 비밀키 로그인 허용여부를 추가 지정하고 싶다면 PasswordAuthentication 아래에 PubkeyAuthentication 설정을 추가해 주면 됩니다.
그 외 계정에 대해서는 비밀번호는 막고 공개키 로그인만 허용하고 싶기 때문에 Match All 로 Match User 아래에 지정했습니다.
Match User temp
PasswordAuthentication yes
Match All
PasswordAuthentication no
PubkeyAuthentication yes
자 이 상태로 계정별로 접속 테스트 해보니?? 변화가 없네요..
sshd 서비스 재시작해야 적용됩니다.
sudo systemctl restart sshd
이제 테스트해보니 잘 됩니다 :)