SSH 명령에서 비밀번호 재시도를 비활성화하는 방법

SSH 명령에서 비밀번호 재시도를 비활성화하는 방법

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_configMaxAuthTries 보기 기본값은 6이므로 공개키 인증을 먼저 시도한 다음 비밀번호 인증을 시도할 수 있는 값을 선택할 때 유의하세요.

관련 정보