O SSH continua solicitando minha senha se eu usar um arquivo-chave diferente do padrão

6

Eu tenho um arquivo-chave chamado KEY , que tem KEY e KEY.pub . Eu carrego o pub para authorized_keys e adiciono o privado com

ssh-add /home/user/.ssh/KEY

Mas quando tento me conectar com ssh [email protected] , ele fica me pedindo a senha.

Se eu gerar uma chave com ssh-keygen e deixar o nome da chave padrão, carregando o pub e carregando o privado, não solicitará uma senha.

Qual poderia ser o problema?

    
por Gabriel A. Zorrilla 12.09.2010 / 21:27

3 respostas

8

Com ssh -vvv [email protected] , você pode obter a saída de depuração e provavelmente informará que ela não pode ser autenticada com ~/.ssh/id_rsa (o arquivo-chave padrão do ssh). A resposta é dizer ao ssh qual tecla usar:

ssh -i /home/user/.ssh/KEY [email protected]

Você também pode adicionar seu arquivo de chaves por host ao seu .ssh/config , então você só precisará digitar ssh host.com e o usuário / chave serão selecionados automaticamente.

Exemplo de entrada para .ssh / config (Para mais informações, consulte man ssh_config ):

Host mysshserver ssh.host.com
HostName ssh.host.com
User myusername
IdentityFile ~/.ssh/mykeyfile


Explicação dos arquivos de chave de man ssh :

 -i identity_file
             Selects a file from which the identity (private key) for RSA or
             DSA authentication is read.  The default is ~/.ssh/identity for
             protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro‐
             tocol version 2.  Identity files may also be specified on a per-
             host basis in the configuration file.  It is possible to have
             multiple -i options (and multiple identities specified in config‐
             uration files).
    
por 12.09.2010 / 22:42
1

Para configurar corretamente seus arquivos de chave (como aqui ), observe o seguinte:

No caso do seu diretório host .ssh e arquivos não possuírem as permissões corretas E / OU o seu diretório pessoal do usuário remoto não possuir as permissões corretas, o ssh continuará solicitando a senha, embora encontre o arquivo-chave. / p>

Você pode ver se seus arquivos / arquivos de chave estão sendo oferecidos usando ssh -vvv user@host

Exemplo de saída:

debug1: Offering DSA public key: /Users/<user>/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password

Verifique o diretório inicial do usuário remoto e as permissões de .ssh do diretório remotas

Por exemplo, as permissões devem ser:

$ls -ld .ssh
drwx------ 2 <owner> <group> 4096 2011-12-29 20:39 .ssh

$ls -ld ~/
drwxr-xr-x 28 <owner> <group> 4096 2011-12-29 20:15 /home/<user>/ 
    
por 30.12.2011 / 03:01
-1

O artigo Como configurar logins SSH baseados em keyfiles explica o problema e a solução

when you're on system A and type "ssh username@B", system B will check to see if the key corresponding to your system A "id_dsa" file is among those known to your user (i.e., it is in the authorized_keys file in your user's .ssh subdirectory). If it is, it won't ask for a system password, it will ask for the key's associated passphrase, which means that if you've set it up with no passphrase, you're on without having to type anything.

Veja o artigo para instruções detalhadas.

    
por 12.09.2010 / 22:18