Eu não acho que você pode fazer isso sem realmente tentar a chave correta ou senha, ou verificar a configuração do servidor.
sshd
pede felizmente ao cliente uma senha, mesmo se você tiver PermitRootLogin prohibit-password
set, e a senha nunca funcionará. Ele também pede uma senha mesmo se você tiver PermitRootLogin no
e o login não funcionar mesmo com uma chave. Se bem me lembro, ele até mesmo passa pelo PAM para falsificar a tentativa de autenticação, ele apenas faz isso com uma senha inválida conhecida, de modo que você não pode dizer a partir do momento se a autenticação de senha é permitida. Isso é semelhante para AllowUsers
etc.
É claro que, além disso, usar BatchMode
desativa a solicitação de senhas no lado do cliente (mencionada como a primeira na man page), então a combinação de -o BatchMode=yes -o PreferredAuthentications=password
não é muito útil.
Você terá que realmente fazer o login no sistema e verificar quais métodos de autenticação funcionam. Se você conseguir fazer o login com uma chave, essa chave estará em uso. Se você puder fazer o login com uma senha, a senha estará em uso. Depois de efetuar login, verifique se o valor de PermitRootLogin
não é yes
(o padrão é prohibit-password
) e se a raiz authorized_keys
contém a (s) chave (s) que deve conter e nenhuma outra.