Mac Server에 암호 인증으로 SSH 연결할 수 없음

3827 단어 SSHmacosMac

Overview



Mac Server의 SSH 설정에서 매우 빠져서 비망록을 남깁니다.

무슨 일이야?



한 Mac Server에 암호 인증으로 로그인할 수 없습니다.
$ ssh [email protected]
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
[email protected]: Permission denied (publickey,password,keyboard-interactive).

$ ssh [email protected]
Password:
mac-002:~ dareka$ # 別の機体はすんなりログインできる...

$ ssh [email protected] 
mac-001:~ jibun$ # また自分の private key を使えばすんなりとログインできる...

원인 규명



비밀번호를 들었을 때의 표시가 약간 다르고, 처음에는 당황했지만 원인은 /etc/ssh/sshd_config 의 설정으로, 이 UsePAM yes 가 코멘트 아웃 되고 있었던 것이 원인이었습니다.
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
# UsePAM yes

코멘트 아웃 제외하면 패스워드 인증할 수 있게 되었습니다.
쟈쿠리 번역해 보면 이하와 같은 간지.
この設定を有効にすると、ChallengeResponse 認証とパスワード認証を通して PAM 認証が許可されます。PAM の設定によっては、ChallengeResponse 認証経由の PAM 認証はパスワードなしの RootLogin 設定の迂回路となってしまうかもしれません。ただ PAM 認証なしで PAM アカウントとセッションのチェックがしたいだけだったら、この設定は有効にして PasswordAuthentication と ChallengeResponseAuthentication は no にしてください。

PAM 인증이란,Pluggable Authentication Module : 각종 인증 처리를 실행하는 모듈군과 그것을 이용하기 위한 표준 API 를 갖춘 라이브러리로 구성된 사용자 인증 시스템.
OS에 의한 유저 인증을 독립시켜, 각 어플리케이션이 사용할 수 있는 공통 부품으로서 모듈화한 것을 PAM이라고 부르며, PAM은 Solaris, HP-UX, FreeBSD, Linux 등 폭넓은 시스템에서 사용되고 있다.
라는 것 같습니다.

sshd를 재시작하는 것이 좋다,라는 기사도 보였지만 자신은 특히 재기동하지 않아도 반영되었습니다.
sudo launchctl stop com.openssh.sshd

덧붙여서, /private/etc/ssh에도 sshd_config가 있습니다만, 이쪽이 실태로 루트 쪽이 symlink 같습니다. (linux와의 호환성을 고려할까요?? 자세한 내용을 알려주세요.
mac-001:~ jibun$ ls -l /etc
lrwxr-xr-x@ 1 root  admin  11  9  2 15:13 /etc -> private/etc
/private/etc/ 바로 아래에도 sshd_config가 있었지만이 파일을 변경해도 변경 내용이 반영되지 않았습니다. 편집 대상은 /private/etc/ssh 아래의 sshd_config라는 것에 주의가 필요할 것 같습니다.

알아두는 것이 좋았다.



문제는 해결했습니다만, 더 알아 두는 것이 좋았구나, 라고 생각한 것을 적어 둡니다.

SSH 유형


  • 암호 인증
  • 공개 키 (+ 비밀 키) 인증
  • SSH1의 rhosts 인증
  • SSH1의 ChallengeResponse (TIS) 인증
  • SHS2의 keyboard-interactive 인증 (암호 인증과 거의 동의?)

  • 패스워드 인증과 공개키 인증은 필수.

    공개키 인증시의 주의점


  • .ssh 디렉토리의 permission 는 700
  • authorized_keys의 permission는 600
  • authorized_keys의 소유자가 root가 아닌가

  • SSH 구성 파일


  • /etc/ssh/ssh_config → 클라이언트 측 설정 파일
  • /etc/ssh/sshd_config → 서버 측 (SSH되는 측, 데몬) 설정 파일

  • sshd_config 설정


  • 공개 키 인증 만 활성화하려면 ChallengeResponseAuthenticationPasswordAuthenticationno로 설정
  • 좋은 웹페이지 즐겨찾기