chave pública sempre pedindo senha e keyphrase

19

Estou tentando o SSH de um NAS para um servidor da Web usando uma chave pública. Usuário NAS é 'root' e o usuário do servidor web é 'backup'

Eu tenho todas as permissões definidas corretamente e quando eu depurar a conexão SSH eu recebo: (último pequeno pedaço do debug)

debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':

Estou usando o comando:

ssh -v -i /root/.ssh/id_dsa.pub [email protected]

O fato de que ele está pedindo uma senha é um bom sinal, mas eu não quero que ela solicite uma senha ou uma senha (que vem depois, se eu pressionar 'voltar' na frase secreta)

    
por Andrew Atkinson 20.11.2012 / 22:30

7 respostas

24

Isso porque sua chave privada é criptografada ...

Você pode adicionar sua chave a um agente ssh usando ssh-add ou remover a frase secreta (e com ela a criptografia) da chave usando o seguinte comando:

ssh-keygen -p -f /root/.ssh/id_dsa -N ''

EDITAR

Oh, acabei de perceber que você tenta usar sua chave pública para autenticar ... Você deseja usar a chave privada:

ssh -v -i /root/.ssh/id_dsa [email protected]

E só para ter certeza, o conteúdo do arquivo id_dsa.pub entra em ~backup/.ssh/authorized_keys no servidor da web. Você pode usar o seguinte comando para fazer isso automaticamente

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
    
por 20.11.2012 / 22:37
6

Isso aconteceu comigo quando a chave privada que eu tinha não estava no formato OpenSSH.

Eu originalmente gerava minha chave no Windows usando o PuttyGen e estava sendo rejeitado com a mesma coisa.

Consegui corrigi-lo carregando a chave em PuttyGen e clicando em "Conversões" para obtê-la no formato OpenSSH.

    
por 13.02.2015 / 03:32
2

Existem algumas coisas.

Primeiramente, se a CHAVE estiver solicitando uma senha, a chave foi gerada com ela. Em segundo lugar, se o sistema solicitar uma senha depois, a chave não será autenticada. Ou seja, você precisará regenerar sua chave SSH (ou alterá-la como sugerido por @rbtux) e corrigir os arquivos authorized_keys.

ssh-keygen -t {dsa|rsa} -b {1024|2048|4096} -C "optional comment" -f id_examplekey

Os itens entre chaves são opções, tipo e tamanho de bit (para indicar o óbvio: dsa & rt; rsa, 4096 > 1024 - em termos de "segurança").

Em seguida, você precisa adicionar a chave pública (.pub) aos arquivos authorized_keys e authorized_keys2 (é um equívoco comum dizer que o .pub é para uso local, no entanto, ele deve ser comparado com). na pasta .ssh do servidor.

$ cat id_examplekey.pub >> authorized_keys{,2}

Em seguida, você deve garantir que as permissões de chave sejam chmod 600 id_example e, para facilitar a digitação, você pode configurar o arquivo de configuração: ~/.ssh/config na sua caixa local (isso é um esqueleto, você pode personalizar isso é uma tonelada):

Host example.com
    User WHATEVERNAME
    IdentityFile ~/.ssh/id_examplekey
    
por 20.11.2012 / 22:45
2

Para mim, como a chave em si foi criptografada, segui as etapas a seguir:

  • Iniciar o agente ssh: $ ssh-agent bash
  • Adicione uma chave de identidade padrão ao gerenciador de chaves: $ ssh-add
  • Se você quiser adicionar uma chave diferente, então: $ ssh-add /location/of/key

Para inspecionar a qualquer momento, a lista de chaves carregadas no momento:

$ ssh-add -l

Mais detalhes podem ser obtidos neste link

    
por 22.07.2014 / 09:34
1

tente link

É uma espécie de envolvimento em ssh-agent e ssh-add

Prós: Não é necessário inserir a senha repetidamente, desde que você não reinicialize. Poderia ser usado em crontab .

Pode ser uma ajuda.

    
por 13.10.2014 / 06:50
1

Pode ser porque você está usando um pubkey de DSA que está desativado por padrão no OpenSSH v7.

Se você não puder alterar o par de chaves, uma possível solução alternativa será informar ao seu daemon SSH em webserver.com para aceitar esses tipos de chave, atualizando /etc/ssh/sshd_config ou equivalente, adicionando a seguinte linha

PubkeyAcceptedKeyTypes=+ssh-dss

E, em seguida, reiniciar o serviço

/etc/init.d/ssh restart                     # or equivalent
    
por 04.08.2016 / 13:47
0

No Mac OSX, você pode adicionar sua chave privada ao chaveiro usando o comando:

ssh-add -K /path/to/private_key

Se sua chave privada é armazenada em ~ / .ssh e é chamada id_rsa:

ssh-add -K ~/.ssh/id_rsa

Você será solicitado a fornecer sua senha, que será armazenada no seu chaveiro.

    
por 14.12.2016 / 16:12