Como testar se o SSH tem acesso sem senha sem solicitar senha?

0

Estou escrevendo um script de shell autônomo que configura um novo servidor. Como posso executá-lo várias vezes, desejo verificar se o acesso SSH sem senha já foi configurado. Um comando como

ssh newhost.example.com /bin/true

sairá com sucesso se o acesso existir, mas se não, ele irá aguardar a inserção de uma senha.

Existe uma maneira de desativar a possibilidade de acesso por senha para tal comando, para que ele falhe rapidamente se o acesso sem senha ainda não estiver configurado?

    
por rep 02.10.2018 / 19:50

2 respostas

3

Para informar a ssh que você deseja usar somente a autenticação de chave pública, use a opção de configuração PreferredAuthentications .

Interativamente:

ssh -o PreferredAuthentications=publickey newhost.example.com /bin/true

Ou no arquivo ~/.ssh/config :

# or Host *.example.com, or Host *
Host newhost.example.com
  PreferredAuthentications=publickey
    
por 02.10.2018 / 20:26
3

Você pode desativar a opção PasswordAuthentication :

ssh -o PasswordAuthentication=no newhost.example.com /bin/true

Isso não solicita uma senha e retorna rapidamente o código de saída 255 quando o acesso sem senha é negado.

    
por 02.10.2018 / 19:50