login sem senha ssh funcionando principalmente, exceto para uma conta de serviço para uma segunda caixa

login sem senha ssh funcionando principalmente, exceto para uma conta de serviço para uma segunda caixa

Eu configurei uma pequena caixa Linux há alguns meses e configurei o login ssh sem senha para meu ID de usuário pessoal e um ID de conta de serviço. Isso está funcionando bem para ambos. Armazenei os arquivos de chave privada/pública da conta de serviço no mesmo local em que armazenei as chaves do meu ID de usuário pessoal, na caixa do cliente.

Estou usando o seguinte como meu guia básico:http://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/.

Hoje montei uma segunda caixa, pretendendo configurá-la da mesma forma. Não tive problemas para fazê-lo funcionar com meu ID de usuário pessoal. No entanto, ainda não funciona para a conta de serviço, mas não entendo o porquê. Quando tento fazer o ssh com a conta de serviço na segunda caixa, ele solicita a senha e me permite entrar.

Verifiquei que a chave pública da conta de serviço está inserida no arquivo ~/.ssh/authorized_keys em ambas as caixas e o valor da chave é o mesmo em ambas as caixas.

Verifiquei que ~/.ssh tem permissões de 700 e que ~/.ssh/authorized_keys tem permissões de 600 (também testei com 640, que é o que li como o valor recomendado). Verifiquei isso em ambas as caixas, no diretório inicial da conta de serviço.

Observe que o ID de usuário numérico da conta de serviço é diferente nas duas caixas. Eu não acho que isso faria alguma diferença.

Observo também que depois de fazer ssh para qualquer caixa com a conta de serviço, se eu tentar fazer ssh para a OUTRA caixa daquela, usando a conta de serviço, ele solicitará uma senha.

Preciso fazer algo com "known_hosts" ou algo mais?

Atualizar:

Conforme recomendado, tentei executar o ssh com "-v" e inspecionar a saída da tentativa do ssh.

Esta é a saída, com algumas elisões:

%  ssh -v [email protected]
OpenSSH_7.2p2, OpenSSL 1.0.2h  3 May 2016
debug1: Reading configuration data /home/myuserid/.ssh/config
debug1: /home/myuserid/.ssh/config line 2: Applying options for *
debug1: Connecting to targethost.com [...] port 22.
debug1: Connection established.
debug1: identity file /home/myuserid/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/myuserid/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/myuserid/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/myuserid/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/myuserid/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/myuserid/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/myuserid/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/myuserid/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
debug1: match: OpenSSH_6.6.1 pat OpenSSH_6.6.1* compat 0x04000000
debug1: Authenticating to targethost.com:22 as 'serviceaccountid'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:...
debug1: Host 'targethost.com' is known and matches the ECDSA host key.
debug1: Found key in /home/myuserid/.ssh/known_hosts:18
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
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 RSA public key: /home/myuserid/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/myuserid/.ssh/id_dsa
debug1: Trying private key: /home/myuserid/.ssh/id_ecdsa
debug1: Trying private key: /home/myuserid/.ssh/id_ed25519
debug1: Next authentication method: password
[email protected]'s password:

Acho curioso que nas últimas linhas, após "Próximo método de autenticação: publickey", as referências do caminho do arquivo sejam para "/home/myuserid", e não para "/home/serviceaccountid". Isso parece uma grande pista.

Responder1

Não consigo adicionar comentários à minha conta, mas sou apenas eu tentando aprender mais para ajudar a solucionar problemas.

Parece que você tem três computadores, um local e dois remotos. E cada um deles tem duas contas com as quais você está trabalhando?

Se você tiver uma conta pessoal e de serviço na máquina local e executar ssh service@remote-2a partir da conta pessoal em sua máquina local, ele encontrará apenas chaves ssh para sua conta pessoal local, não para a conta de serviço. adicionei a chave pública pessoal local ao arquivo de chaves autorizadas da conta de serviço remoto.

Acho curioso que nas últimas linhas, após "Próximo método de autenticação: publickey", as referências do caminho do arquivo sejam para "/home/myuserid", e não para "/home/serviceaccountid". Isso parece uma grande pista.

Isso é ssh procurando por chaves na conta local. Deve ser o diretório inicial de qualquer conta da qual você está chamando o ssh. Se você espera que esse caminho seja o início de uma conta de serviço, será necessário fazer login na conta de serviço eentãoexecute ssh.

informação relacionada