사용자에게 SSH 연결을 인증하는 방법을 알려주는 방법이 있습니까? 즉, 비밀번호 또는 공개 키를 통해?

사용자에게 SSH 연결을 인증하는 방법을 알려주는 방법이 있습니까? 즉, 비밀번호 또는 공개 키를 통해?

공개 키만 사용하기 위해 서버를 잠그고 있습니다. 모든 사용자가 전환되었는지 확인하고 스위치를 켜기 전에 비밀번호로 로그인한 사람이 없는지 확인하고 싶습니다.

답변1

우분투에서:

$ sudo cat /var/log/auth.log|grep ssh|grep Accept

CentOS/RHEL의 경우:

$ sudo cat /var/log/secure|grep ssh|grep Accept

그러면 모든 연결과 해당 연결이 인증된 방법이 표시됩니다(로그 파일이 마지막으로 교체된 이후).

만약 너라면오직비밀번호 연결을 보려면 다른 grep을 통해 파이프하면 됩니다.

 ... grep ssh|grep Accept|grep password

보너스 포인트의 경우, 여전히 비밀번호를 사용하는 사용자의 간략한 목록입니다(위 명령 출력의 9열에 사용자 이름이 표시된다고 가정).

... grep password|awk '{print $9}'|sort|uniq

답변2

환경변수 방식

그럴 가능성이 있습니다... PermitUserEnvironment설정에서 true로 설정한 것이 만족스러우면 sshd_config키에 대한 환경 변수와 일부 검사를 조합하여 /etc/profile비밀번호 방법이 아직 누구에게도 사용되고 있음을 경고/거부할 수 있습니다. .

파일 에는 $HOME/.ssh/authorized_keys다음과 같은 내용이 있습니다.

environment="KEYUSED=yes" ssh-dsa AAA...

이 키를 사용하면 /etc/profile런타임 변수 KEYUSED가 "yes"로 설정됩니다.

로그 입력 방법

또는 키를 사용하는 항목이 있는지 /var/log/secure를 확인하세요.

Jul 29 13:58:20 localhost sshd[827]: Accepted publickey for steve from 192.168.124.1 port 50829 ssh2: RSA d3:35:bc:ed:c7:6f:11:27:44:f8:13:66:af:1e:8e:7e

비밀번호를 사용하는 항목

Jul 29 14:02:08 localhost sshd[1320]: Accepted password for foo from 127.0.0.1 port 57460 ssh2

관련 정보