Efetuando login através do túnel ssh com a chave rsa ainda solicitando a senha

Efetuando login através do túnel ssh com a chave rsa ainda solicitando a senha

Eu tenho dois laptops (Host A e Host C) com endereços IP dinâmicos e um desktop (Host B), todos executando Linux (Ubuntu). No momento, tenho tudo configurado para poder acessar o Host A do Host C da seguinte maneira. Eu tenho um túnel ssh de A a C com o comando no hostA do formulário

autossh -NR 10023:localhost:22 [email protected]

Estou usando um emparelhamento de chaves para que o comando autossh possa realmente acontecer.

Então posso fazer ssh em B a partir de C e depois conectar-me a a com

ssh -p 10023 localhost

solicita uma senha e eu posso entrar. Sem problemas.

No entanto, gostaria de melhorar a segurança em A, portanto, é necessária uma chave para o login. Então eu ssh-keygen um par de chaves no HostB e nomeio minha chave customkey_rsa e forneço a ela uma senha. Então customkey_rsa.pub é a chave pública. Não consigo fazer com que o ssh-copy-id funcione com este túnel, então apenas faço login em A a partir de C e scp no customkey_rsa.pub do Host B. Em seguida, anexo a chave com

cd .ssh & cat customkey_rsa.pub >> authorized_keys

Agora, porém, quando tento fazer login, ainda recebo a solicitação de senha. Parece, na verdade, que chega a tentar a chave, mas de alguma forma desiste no último segundo, conforme abaixo

de B

ssh -v -i customkey_rsa -p 10023 localhost

OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Connecting to localhost [127.0.0.1] port 10023.
debug1: Connection established.
debug1: identity file customkey_rsa type 1
debug1: identity file customkey_rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH_6.6.1* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA (redacted)
debug1: Host '[localhost]:10023' is known and matches the ECDSA host key.
debug1: Found key in /home/ohnoplus/.ssh/known_hosts:2
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: customkey_rsa
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password 
ohnoplus@localhost's password: 

Observe que as permissões para ~/.sshno Host A são 700e para .ssh/authorized_keyssão 600.

Então, minha pergunta. Por que isso não funcionou e como posso consertar?

Coisas que observei que não ajudaram:

Trabalhei na lista de sugestões. As permissões estão definidas corretamente em meu sistema e as outras soluções não se aplicam. Por que ainda estou recebendo uma solicitação de senha com ssh com autenticação de chave pública?

Semelhante, mas nenhuma solução fornecida: ssh com chave rsa pede senha

Não tenho um arquivo "authorized_keys2" ssh solicita senha apesar de .ssh/authorized_keys

Responder1

Você precisa adicionar:

PasswordAuthentication no

para o seu sshd_config (essa é a configuração do servidor)

informação relacionada