ssh 명령이 비밀번호를 한 번만 입력할 수 있도록 하고 싶습니다. 처음에 비밀번호가 틀리면 ssh가 반환됩니다.
Permission denied (publickey......).
ssh에 비밀번호를 한 번만 요청하도록 지시하는 플래그가 있습니까?
바꾸다:
[nir@dhcppc4 ~]$ 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:
Permission denied (publickey.....).
제 생각에는:
[nir@dhcppc4 ~]$ ssh [email protected]
[email protected]'s password:
Permission denied (publickey.....).
해결책은 클라이언트 측에 있어야 합니다(예: ssh 명령에 대한 일부 플래그 또는 파이프 사용). 이 부분 sshd_config
이나 다른 시스템 구성 파일은 건드릴 수 없습니다. 일반적으로 저는 LAN의 서버에 액세스하는 타사 소프트웨어를 구축하므로(따라서 키를 생성하거나 시스템 파일을 구성할 수 없음) 비밀번호가 데이터베이스에 저장됩니다(따라서 두 번째 시도가 필요하지 않습니다). 내 코드에서 한 번만 시도할 수 있다고 가정하면 ssh
관련 scp
코드가 단순화됩니다.
답변1
SSHd 구성 매뉴얼 페이지에서 man 5 sshd_config
:
MaxAuthTries
Specifies the maximum number of authentication attempts permitted
per connection. Once the number of failures reaches half this
value, additional failures are logged. The default is 6.
MaxAuthTries 2
따라서 필요한 설정 이 됩니다. sshd
나중에 재부팅이 필요합니다(루트로 실행해야 함).
/etc/init.d/ssh restart
또는
service ssh restart
클라이언트 측에서는 SSH 설정을 사용하여 이를 설정할 수 있습니다( man 5 ssh_config
적용할 수 있는 설정 참조).
NumberOfPasswordPrompts
Specifies the number of password prompts before giving up. The
argument to this keyword must be an integer. The default is 3.
따라서 ~/.ssh/config
파일을 편집하고 다음을 추가하십시오.
Host <name_or_ip_of_host|*>
NumberOfPasswordPrompts 1
<name_or_ip_of_host|*>
명령줄이나 모든 호스트 연결 시도에 사용 *
하는 정식 IP 또는 호스트 이름입니다. 파일을 편집하지 않고 명령줄에서 지정할 수도 있습니다 /.ssh/config
.
ssh -o NumberOfPasswordPrompts=1 user@hostname
답변2
sshd_config
MaxAuthTries 보기 기본값은 6이므로 공개키 인증을 먼저 시도한 다음 비밀번호 인증을 시도할 수 있는 값을 선택할 때 유의하세요.