
Eu tenho um arquivo-chave chamado KEY
, que possui 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 , ele continua me pedindo a senha.ssh [email protected]
Se eu gerar uma chave com ssh-keygen
e deixar o nome da chave padrão, fazendo upload do pub e carregando o privado, elenãosolicite uma senha.
Qual poderia ser o problema?
Responder1
Com você pode obter a saída de depuração e provavelmente dirá que não pode autenticar com (arquivo de chave padrão do ssh). A resposta é dizer ao ssh qual chave usar:ssh -vvv [email protected]
~/.ssh/id_rsa
ssh -i /home/user/.ssh/KEY [email protected]
Você também pode adicionar seu arquivo-chave por host ao seu arquivo .ssh/config
, basta digitar ssh host.com
e o usuário/chave será selecionado 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).
Responder2
Para configurar seus arquivos principais corretamente (Como fazeraqui), observe o seguinte:
Caso o .ssh
diretório host e os arquivos não tenham as permissões corretas E/OU o diretório inicial do usuário remoto não tenha as permissões corretas, o ssh continuará solicitando a senha, embora encontre o arquivo-chave.
Você pode ver se seus arquivos principais estão sendo oferecidos usandossh -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 .ssh
as permissões do diretório remoto
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>/