특정 사용자만 SSH를 사용하도록 허용하는 방법은 무엇입니까?

특정 사용자만 SSH를 사용하도록 허용하는 방법은 무엇입니까?

모든 사람이 SSH 연결을 갖고 있는 시스템에서 AllowUsers $USER /etc/ssh/sshd_config를 사용해도 안전합니까 ?

모든 사람이 SSH 액세스 권한을 갖기를 원하지만 시스템 계정에는 SSH 액세스 권한이 있는 것을 원하지 않습니다. 또한 사용자를 프로필에 영구적으로 추가하지 않고도 설정하고 싶습니다. 사용할 수 있는 변수가 있나요? 사용자 이름 == 사용자 홈페이지라고 가정하면 AllowUsers가 ls /home/ 작동할 수도 있습니다. 이 일을 해야 할지 모르겠습니다.

답변1

그 반대를 수행하십시오. 목록에 있는 사용자가 로그인하는 것을 방지하려면 sshd_config에서 DenyUsers를 사용하세요.

로그인 기능을 거부하려는 사용자 목록은 일반적으로 수퍼유저와 쉘로 /bin/nologin을 사용하는 모든 사용자입니다. 또한 /etc/passwd 파일을 확인하고 패키지의 일부로 설치된 사용자를 식별하십시오. CentOS 7에서 이러한 사용자의 uid는 일반적으로 1000 미만입니다.

이것이 CentOS 7에 있는 것입니다:

DenyUsers 루트 bin 데몬 adm lp 동기화 종료 메일 운영자 게임 중지 ftp none dbus polkitd tss colord usbmuxd rpc rtkit qemu radvd ntp chrony abrt avahi-autoipd unbound rpcuser nfsnobody libstoragemgmt saslauth pulsegdm gnome-initial-setup avahi pcp postfix sshd oprofile tcpdump lightdm pn 나노- 오픈커넥트

"denyusers.awk"라는 awk 스크립트를 실행하여 이 목록을 얻었습니다.

./denyusers.awk /etc/passwd

이것이 내 "denyusers.awk" 스크립트의 소스입니다.


#!/bin/awk -f
BEGIN {
    FS=":";
    printf("%s","DenyUser root");
}

{
    username=$1;
    uid=$3
    shell=$7;
    if ((uid<1000) || ( shell == "/sbin/nologin" )) {
       printf(" %s", username);
    }
}

END {
    print "";
}

관련 정보