autenticação SSH por chave pública e senha ao mesmo tempo

0

Algo não está claro para mim com autenticação SSH.

Eu tenho um trabalho do Talend que se conecta ao sFTP (usando o protocolo SSH) e na página de propriedades do componente, eu tenho a escolha entre:     1.% de autenticaçãoPassword     2.% de autenticaçãoPublicKey

Quando escolho a autenticação Password , os dados a serem inseridos são username e password . mas quando escolho a autenticação PublicKey , os dados a serem inseridos são username , password , private key path e private key pass-phrase .

Eu acho que quando uma autenticação PublicKey está definida em um servidor, não há necessidade de uma senha.

O SSH ativa uma autenticação usando uma chave pública e uma senha ao mesmo tempo que uma imposição de segurança ou é apenas uma alternativa, o que significa que, se a chave pública não for autorizada, o nome de usuário padrão / password será usada (se o servidor sshd permitir)?

    
por рüффп 07.11.2013 / 14:56

2 respostas

1

OpenSSH 6.2 introduziu vários métodos de autenticação.

Para referências, veja sshd_config (5).

    
por 07.11.2013 / 14:59
0

Normalmente, se você usar PublicKey e Password , será um retrocesso. PublicKey é tentado primeiro porque é mais seguro e mais seguro, então Password é tentado.

Eu STRONGLY (e eu não posso deixar isso ousado o suficiente). Sugira que você permita a autenticação baseada somente em somente PublicKey para qualquer servidor SSH em execução na Internet.

Quando a conexão SSH é estabelecida usando a autenticação Password , a senha é enviada ao servidor. A autenticação por senha deixa você aberto para a rota normal de brute forçando uma senha. O que pode e vai acontecer, se houver usuários suficientes usando esse servidor de ver (um deles irá escolher uma senha de baixa qualidade).

A autenticação baseada em chave é muito mais segura, porque vincula um usuário em uma máquina a um usuário em outra máquina. A chave é normalmente gerada por par de máquina / usuário do cliente. Quando eu explico isso para os clientes, eu costumo usar o exemplo do cartão de identificação. Você tem um cartão de identificação, mas pode colocá-lo em muitos lugares.

Dito isto, as chaves podem ser criptografadas com senhas. Portanto, a chave que você gera na sua máquina local pode ter (e faz por padrão) uma senha para descriptografá-la. O que significa que sua máquina local lhe pedirá uma senha, decifrará sua chave, a enviará para o servidor e o servidor tentará autenticá-la. (Para ser justo, não decifra realmente a sua chave, é que a chave pública é "compensada" pela sua senha).

Então, se você usar PublicKey , precisará fornecer uma chave pública para a combinação de usuário / máquina com a qual você está tentando se conectar.

Se você usar Password , precisará fornecer uma senha (enviada de forma clara) para o servidor ao qual está tentando se conectar.

Se você usar PublicKey e Password , precisará fornecer uma chave pública ou uma senha.

    
por 07.11.2013 / 16:46