모든 AD SSH 로그인은 audit.log의 실패로 시작됩니다.

모든 AD SSH 로그인은 audit.log의 실패로 시작됩니다.

Centos 7.x 서버에 로그인할 때마다 audit.log에 명확한 오류가 계속 표시됩니다. 이로 인해 실제 실패가 무엇인지 확인할 수 없기 때문에 실패한 로그인에 대한 일일 스크립트를 작성하려고 시도하는 것이 매우 어렵습니다. 이것은 에서 발췌한 것입니다.aureport -au -ts today

1669. 06/02/17 08:40:03 handsm@internal 10.1.0.24 ssh /usr/sbin/sshd no 1428242
1670. 06/02/17 08:40:03 handsm@internal 10.1.0.24 ssh /usr/sbin/sshd no 1428243
1671. 06/02/17 08:40:06 handsm@internal server01 ssh /usr/sbin/sshd yes 1428244
1672. 06/02/17 08:40:06 handsm@internal 10.1.0.24 ssh /usr/sbin/sshd yes 1428246
1673. 06/02/17 08:40:13 [email protected] ? /dev/pts/3 /usr/bin/sudo yes 1428284

처음 두 줄이 실패하고 즉시 성공하는 것을 볼 수 있습니다. 왜 이런 일이 일어나는지 아는 사람이 있나요?

편집_1: 자세한 SSH 로그 파일이 포함되어 있습니다.

Feb 6 09:59:42 wb-prod-ctl sshd[50489]: Connection from 10.1.0.24 port 58847 on 192.168.61.5 port 22 Feb 6 09:59:45 wb-prod-ctl sshd[50489]: Failed publickey for handsm@internal from 10.1.0.24 port 58847 ssh2: RSA c4:a3:e9:ad:2f:5c:fa:b4:de:49:6a:7d:83:fa:11:d5 Feb 6 09:59:45 wb-prod-ctl sshd[50489]: Postponed gssapi-with-mic for handsm@internal from 10.1.0.24 port 58847 ssh2 [preauth] Feb 6 09:59:46 wb-prod-ctl sshd[50489]: Failed gssapi-with-mic for handsm@internal from 10.1.0.24 port 58847 ssh2 Feb 6 09:59:48 wb-prod-ctl sshd[50489]: pam_sss(sshd:auth): authentication success; logname= uid=0 euid=0 tty=ssh ruser= rhost=server01.internal.office user=handsm@internal Feb 6 09:59:48 wb-prod-ctl sshd[50489]: Accepted password for handsm@regsec from 10.1.0.24 port 58847 ssh2 Feb 6 09:59:48 wb-prod-ctl sshd[50489]: pam_unix(sshd:session): session opened for user handsm@internal by (uid=0) Feb 6 09:59:48 wb-prod-ctl sshd[50489]: User child is on pid 50492 Feb 6 09:59:48 wb-prod-ctl sshd[50492]: Starting session: shell on pts/3 for [email protected] from 10.1.0.24 port 58847

gssapi-with-mic가 실패한 것 같나요?

편집_2: 이제 부작용 없이 GSSAPIAuthentication을 비활성화했으며 SSH 로그의 오류는 gssapi-with-mic사라졌습니다...하지만 (!) 오류가 남아 있습니다 Failed publickey.

따라서 내 서버는 AD 로그인(uid + 비밀번호)과 비밀번호 없는 로그인(공개/개인 키)을 허용합니다. 내 생각에 내 문제는 아마도 고칠 수 없을 것입니다. SSH에는 두 가지 방법 중 하나가 필요하며, 방법 중 하나를 사용하지 않으면 다른 방법이 로그에 오류를 기록한다는 사실입니다.

다른 사람이 이것에 대한 경험이 있습니까?

편집_3: 문제가 해결되었습니다. 감사합니다.리츠즈파.

따라서 Putty의 기본 설정은 "Pageant를 사용하여 인증 시도"로 나타납니다(아래 이미지 참조). 문제의 서버에 대한 새 Putty 세션을 생성하고 이 설정을 비활성화하면 더 이상 Failed publickey오류가 표시되지 않습니다.

여기에 이미지 설명을 입력하세요.

답변1

기본적으로 OpenSSH 클라이언트는 이전에 키를 생성한 경우 공개 키 인증을 시도합니다. 내 생각엔 이렇게 하면 ls ${HOME}/.ssh/키 쌍 - id_rsa및 가 표시될 것입니다 id_rsa.pub. 클라이언트가 서버에 연결되면 이 키 쌍을 사용하여 로그인을 시도합니다. 해당 id_rsa.pub파일이 서버에 없거나 ${HOME}/.ssh/authorized_keys파일에 잘못된 권한이 있기 때문에 sshd서버는 로그인 시도를 실패한 것으로 올바르게 표시합니다. 다음을 시도해 보십시오:

ssh -o PubkeyAuthentication=no

${HOME}/.ssh/이 옵션을 설정하면 SSH 클라이언트가 서버에 인증을 시도할 때 키를 사용 하지 못하게 됩니다 . 그래도 로그 메시지 표시가 중단되지 않으면 -vvSSH 클라이언트 옵션에 추가하여 정확한 용도를 확인할 수 있습니다.

답변2

오래된 스레드를 부활시켜서 죄송합니다. 비슷한 질문을 검색하다가 발견했습니다.

여러 개의 잘못된 긍정 SSH 오류 메시지가 나타나는 두 번째 잠재적 원인은 여러 사용자 인증 소스(예: LDAP 및 로컬 사용자)가 있는 Linux 시스템에 존재합니다. 기본 구성은 일반적으로 "pam_unix.so" 모듈을 사용하여 로컬 사용자를 먼저 확인하는 것입니다. 사용자가 로컬 사용자로 존재하지 않는 경우, 다른 인증 소스에서 해당 사용자에 대한 확인이 성공하더라도 항상 실패 로그 메시지가 생성됩니다.

(종종 그렇듯이) LDAP 사용자가 일반적인 경우에는 먼저 LDAP를 확인한 다음 로컬 인증을 시도하여 LDAP 사용자 문제를 해결할 수 있습니다. 예를 들어 Debian 10의 경우 다음 두 줄을 변경했습니다 /etc/pam.d/common-auth.

# here are the per-package modules (the "Primary" block)
auth    [success=2 default=ignore]  pam_unix.so nullok_secure
auth    [success=1 default=ignore]  pam_ldap.so minimum_uid=1000 use_first_pass
# here's the fallback if no module succeeds
auth    requisite           pam_deny.so

도착하다

# here are the per-package modules (the "Primary" block)
auth    [success=2 default=ignore]  pam_ldap.so minimum_uid=1000
auth    [success=1 default=ignore]  pam_unix.so nullok_secure use_first_pass
# here's the fallback if no module succeeds
auth    requisite           pam_deny.so

=> "success="가 있는 두 줄이 바뀌고 숫자가 새 위치와 일치하도록 변경되며("success="는 모듈에서 성공적으로 반환되면 많은 줄을 건너뜁니다.) "use_first_pass" 플래그는 유지하기 위해 이동됩니다. 두 번째 줄에 있어요

이는 로컬 사용자에 대해 LDAP를 확인하는 것을 의미하므로 완전한 솔루션은 아닙니다(이상적이지 않을 수 있음).

Redhat(예: Linux 배포판) 문제에 대해 다른 접근 방식으로 문서화된 Redhat 솔루션이 있는데, 이 솔루션에는 이러한 단점이 없다고 생각됩니다(pam_localuser.so는 인증을 시도하기 전에 사용자가 로컬 사용자로 존재하는지 확인합니다).

https://access.redhat.com/solutions/881103

데비안과 유사한 시스템에 대해 동일한 솔루션을 구현하는 것이 가능해야 하지만 아직 구현하지 않았습니다.

관련 정보