Ok, eu encontrei! É
ssh -o BatchMode=yes host
Não é muito intuitivo, especialmente com o fato de que as opções que tentei anteriormente não funcionam.
Existe uma maneira de desativar completamente a autenticação de senha? A linha de comando é a seguinte:
ssh -o KbdInteractiveAuthentication=no -o PasswordAuthentication=no machine"
AINDA pede uma senha. Claro que eu gostaria de fazer isso sem tocar no servidor, se possível.
Você pode adicionar essa opção a .ssh / config e salvar algumas digitação:
Host host
BatchMode yes
deve fazer o trabalho.
Acabei de ter este problema e encontrei a resposta aqui:
Basicamente, openssh usava o teclado interativo para implementar a desafio-repsonse. Portanto, se uma dessas opções for definida como "yes", o teclado interativo será definido como "yes" no código. Você precisa definir ambos como "não" para obter o comportamento desejado.
Eu tive que fazer:
ssh -o PasswordAuthentication=no -o KbdInteractiveAuthentication=no -o ChallengeResponseAuthentication=no
É claro que a configuração BatchMode=yes
cuida de tudo isso para você e a prova futura contra novos métodos de autenticação interativa do usuário no futuro.
Tags command-line ssh openssh linux unix