ssh -o PreferredAuthentications: Qual é a diferença entre “senha” e “teclado interativo”?

36

Ambos PreferredAuthentications=passworde PreferredAuthentications=keyboard-interactivepediriam a senha, então qual é a diferença entre eles?

Eu pesquisei no Google com as palavras-chave ssh PreferredAuthentications password diferença interativa do teclado, mas não encontrei respostas.

A única diferença que notei são as strings de prompt ( user@host's password:vs. Password:):

$ ssh -o PreferredAuthentications=password,keyboard-interactive my-host
root@my-host's password:
Password:
Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).

ATUALIZAÇÃO (09-04-2018):

Para fácil referência, o seguinte é do livro SSH: TDG, conforme mencionado na resposta de jouell .

"keyboard-interactive"a autenticação do usuário tem como objetivo principal acomodar a PAMautenticação no lado do servidor. Ele fornece um diálogo múltiplo de resposta ao desafio com o usuário no qual o servidor envia uma consulta de texto ao usuário, o usuário digita uma resposta e esse processo pode se repetir inúmeras vezes. Por exemplo, você pode configurar o PAMSSH com um módulo que executa autenticação usando um token de segurança RSA ou um esquema de senha descartável. As pessoas ficam confusas com isso porque, por padrão, a "keyboard-interactive"autenticação geralmente implementa a autenticação de senha em um único ciclo de desafio-resposta, que apenas solicita uma senha, parecendo exatamente o mesmo que"password"autenticação. Se você não estiver usando deliberadamente os dois para fins diferentes, desabilite um ou outro para evitar confusão do usuário final.

pynexj
fonte
1
Consulte RFC 4252 para obter a autenticação de senha e RFC 4256 para teclado interativo .
precisa saber é o seguinte

Respostas:

37

O protocolo SSH possui vários métodos de autenticação. A senha e o teclado interativo são dois deles.

A autenticação de senha é uma solicitação simples para uma única senha. Não há nenhum prompt específico enviado pelo servidor. Portanto, é o cliente que escolhe como rotular o prompt (O "user @ senha do host" alerta é do OpenSSH clientes , como ssh, sftp, etc.).

A autenticação interativa por teclado é uma solicitação mais complexa para um número arbitrário de informações. Para cada informação, o servidor envia o rótulo do prompt. Além disso, ele permite que o servidor forneça uma descrição detalhada do "formulário" geral. O servidor também pode especificar quais entradas são secretas (precisam ser ofuscadas quando o usuário as digita) e quais não são.

Embora na maioria dos casos a autenticação interativa pelo teclado seja usada para solicitar um único prompt de senha "secreta", não há praticamente nenhuma diferença na autenticação da senha .

Essa é a diferença da perspectiva do protocolo.


Do ponto de vista da implementação, com o servidor OpenSSH, a autenticação interativa por teclado pode ser conectada a autenticações de dois fatores (ou múltiplos fatores), por exemplo, fornecidas pelo mecanismo PAM genérico ou Kerberos .

Da perspectiva do cliente, outra diferença é a localização. Com a autenticação de senha , o cliente pode localizar o rótulo "Senha" , porque sabe que o servidor está solicitando uma senha. Com a autenticação interativa por teclado , mesmo quando o servidor pede apenas uma única senha, o cliente não pode localizar o prompt (a menos que empregue AI), porque é um prompt genérico.

Martin Prikryl
fonte
2

Você já sabe o que é 'senha'. De um nível muito alto (não do protocolo de nível de bloco), pense em 'teclado interativo' como o método para usar o 2FA usando Radius e / ou SecurID etc. Ele fornece diálogos de desafio e resposta: ssh.com tem um bom breve descrição. Ele vai além para destacar que o teclado interativo é o guarda-chuva em que a senha se enquadra. Respeitosamente para os autores, é um pouco confuso.

Veja também a definição do Snail Book . Usamos isso frequentemente para nossas caixas protegidas por RSA.

jouell
fonte