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


Eu tenho um arquivo de chaves chamado KEY, que tem KEY e KEY.pub. Eu carrego o pub para authorized_keyse adicione o privado com

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

Mas quando tento me conectar com ssh user@host.com, continua me pedindo a senha.

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

Qual poderia ser o problema?


5


origem




Respostas:


Com ssh -vvv user@host.com você pode obter a saída de depuração e provavelmente lhe dirá que não pode autenticar com ~/.ssh/id_rsa (arquivo de chaves padrão do ssh). A resposta é dizer ao ssh qual tecla usar:

ssh -i /home/user/.ssh/KEY user@host.com

Você também pode adicionar seu keyfile por host ao seu .ssh/configentão você só precisa digitar ssh host.com e usuário / chave são selecionados automaticamente.

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

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


Explicação dos arquivos-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).

7



Estou recebendo uma opção de configuração incorreta ao adicionar a linha ssh -i: /home/gabriel/.ssh/config: linha 2: opção de configuração incorreta: ssh - Gabriel A. Zorrilla
@Gabriel: "ssh -i /home/user/.ssh/KEY user@host.com" funciona apenas a partir da linha de comando. A opção configfile é diferente e atualizei minha resposta com uma entrada de exemplo para o arquivo .ssh / config.


Para configurar corretamente seus arquivos de chave (Como fazer Aqui), observe o seguinte:

No caso do seu host .ssh O diretório e os arquivos não têm as permissões corretas E / OU o diretório inicial do usuário remoto não tem as permissões corretas, o ssh continuará pedindo a senha, embora encontre o arquivo-chave.

Você pode ver se seus arquivos / arquivos-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 o remoto .ssh permissões de diretório

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>/ 

1





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

quando você está no sistema A e digite "ssh   username @ B ", o sistema B irá verificar para   veja se a chave correspondente ao seu   Um arquivo "id_dsa" está entre aqueles   conhecido pelo seu usuário (ou seja, está no    authorized_keys arquivo no seu usuário   subdiretório .ssh). Se for, não vai   pedir uma senha do sistema, ele perguntará   para a frase-senha associada da chave,   o que significa que se você configurou   sem senha, você está sem   ter que digitar qualquer coisa.

Veja o artigo para instruções detalhadas.


-1