사용자를 공개적으로 허용하고 싶습니다. 즉, 사람들이 비밀번호를 입력하거나 공개 키를 설정하지 않고 로그인할 수 있도록 허용하고 싶습니다. 이는 개방형 SSH 애플리케이션을 생성하기 위한 것입니다. 간단해야 하지만 작동하지 않는 것 같습니다. 여기 내 sshd_config가 있습니다.
UsePAM no
Match User app
X11Forwarding no
AllowTcpForwarding no
# PermitTTY no
PermitEmptyPasswords yes
AuthenticationMethods none
ForceCommand myapp
클라이언트로 ssh를 시도하면 비밀번호를 묻는 메시지가 나타납니다.
[email protected]'s password:
Permission denied, please try again.
몇 가지 변형을 시도했지만 운이 없습니다.
감사해요.
답변1
예비 설명
- 관리자 권한 셸(
sudo -i
)을 시작하고 열어 둡니다. 문제가 발생하면 관리자 권한 셸을 사용하여 변경 사항을 되돌리세요. sudo cp -a …
수정하려는 파일의 복사본을 만듭니다 ( ).- 마지막으로 다시 로그인하여
sudo
재인증할 수 있는지 확인하세요. 그런 다음 올려진 하우징을 닫으십시오.
솔루션 - 1부:/etc/ssh/sshd.conf
자체적으로 관리되는 비밀번호 인증 sshd
대신 PAM 및 해당 키보드 대화형 인증을 사용하도록 구성합니다 . sshd
가장 쉬운 방법은 모든 사용자에 대해 무조건적으로 이를 수행하는 것입니다. 존재하다 /etc/ssh/sshd.conf
:
UsePAM yes
PasswordAuthentication no
KbdInteractiveAuthentication yes
#...
노트:
각 매개변수에서 처음 얻은 값을 사용합니다.
ChallengeResponseAuthentication
KbdInteractiveAuthentication
예, 별칭은 더 이상 사용되지 않으므로 파일에 이전 이름이 없는지 확인하세요 .ChallengeResponseAuthentication no
PasswordAuthentication
사용자를 위한 키보드 대화형 인증 과 다른 사용자를 위한 일반 비밀번호 인증을 수행할 수 있도록KbdInteractiveAuthentication
뒤에 배치할 수 있지만 전역 적입니다. 스니펫은 다음과 같습니다.Match User …
app
UsePAM
UsePAM yes Match User app PasswordAuthentication no KbdInteractiveAuthentication yes Match All PasswordAuthentication yes KbdInteractiveAuthentication no
sshd
파일을 수정한 후 다시 시작하거나 다시 로드하세요(예: Debian sudo systemctl reload ssh.service
: ).
솔루션 - 2부: /etc/pam.d/common-auth
또는/etc/pam.d/sshd
두 가지 방법:
- 항상 자동으로 사용자를 인증하려면
app
수정하세요/etc/pam.d/commmon-auth
. - 관련되었을 때 사용자를 자동으로 인증하려는 경우에는
app
수정하되 수정하지 마세요 .sshd
/etc/pam.d/sshd
/etc/pam.d/commmon-auth
실제로는 /etc/pam.d/commmon-auth
또는 를 수정해야 합니다 /etc/pam.d/sshd
. 그것들을 수정하는 것은 너무 많은 것입니다.
솔루션 - 파트 2a:/etc/pam.d/common-auth
항상 자동으로 사용자를 인증하도록 PAM을 구성하려면 in을 포함하는 (이미 존재하는) 행 앞에 다음을 포함하는 행을 추가하십시오 app
. 파일은 다음과 같아야 합니다.pam_succeed_if.so
pam_unix.so
/etc/pam.d/common-auth
# [...]
auth [success=2 default=ignore] pam_succeed_if.so user = app
auth [success=1 default=ignore] pam_unix.so nullok
# [...]
auth requisite pam_deny.so
# [...]
auth required pam_permit.so
# [...]
수정된 방법입니다이 다른 답변, 거기에 설명이 있습니다. pam_succeed_if
사용자가 app
인증을 위해 처리(비밀번호를 묻는 메시지)를 거칠 필요가 없도록 이를 먼저 넣었습니다 pam_unix
.
app
su app
예를 들어, 이는 인증을 요청하는 모든 도구에 대해 자동으로 사용자를 인증합니다. 요청 app
시에만 sshd
사용자를 자동으로 인증 하려면 다음을 수정해야 합니다 /etc/pam.d/sshd
.
솔루션 - 2b부:/etc/pam.d/sshd
관련된 사용자를 자동으로 인증하도록 PAM을 구성하려면 app
(이미 존재함) 앞에 두 줄을 추가하십시오. 파일의 시작 부분은 다음과 같아야 합니다.sshd
@include common-auth
/etc/pam.d/sshd
# [...]
auth [success=1 default=ignore] pam_succeed_if.so user != app
auth sufficient pam_permit.so
# Standard Un*x authentication.
@include common-auth
# [...]
[...]