Podemos fazer o ssh expirar enquanto aguardamos uma senha?

2

Eu escrevi um script que espera receber vários nomes de host de algum lugar e executar um comando em cada um desses hosts:

ssh "$host" some command

Eu tenho a configuração necessária para fazer ssh conexões sem a necessidade de uma senha. No entanto, às vezes encontramos um host que precisa de uma senha e o script trava.

Existe uma maneira de fazer o ssh expirar enquanto aguarda uma senha? Eu não quero usar o comando timeout .

    
por codeforester 27.02.2018 / 23:54

2 respostas

2

Você está procurando LoginGraceTime no seu sshd_config .

De sshd_config(5) :

LoginGraceTime
             The server disconnects after this time if the user has not successfully logged in.  If the value is 0, there is no time
             limit.  The default is 120 seconds.
    
por 27.02.2018 / 23:57
4

Qualquer uma dessas opções pode funcionar no lado do cliente para evitar a solicitação da senha, o que parece que deve funcionar no seu caso. (Eu suponho que você pode encontrar os hosts com falha de algum log e reexecutá-los de forma interativa.) De ssh_config(5) :

BatchMode
    If set to yes, passphrase/password querying will be disabled. ...

PasswordAuthentication
    Specifies whether to use password authentication.
    The argument to this keyword must be yes (the default) or no.

Então,

ssh -oBatchMode=yes someuser@somehost ...

ou

ssh -oPasswordAuthentication=no someuser@somehost ...
    
por 28.02.2018 / 00:03

Tags