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

0

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

Estou usando o seguinte para o meu guia básico: link .

Hoje eu configurei uma segunda caixa, com a intenção de configurá-la da mesma maneira. Eu não tive problemas para fazê-lo funcionar para o meu userid pessoal. No entanto, ainda não está funcionando para a conta de serviço, mas não entendo o motivo. Quando eu tento o ssh com a conta de serviço para a segunda caixa, ele me pede a senha e depois me deixa entrar.

Eu verifiquei que a chave pública da conta de serviço é inserida no arquivo ~ / .ssh / authorized_keys nas duas caixas, e o valor da chave é o mesmo nas duas caixas.

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

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

Eu também noto que depois que eu ssh para qualquer caixa com a conta de serviço, se eu tentar ssh para a caixa OTHER daquele usando a conta de serviço, ele me pedirá uma senha.

Preciso fazer algo com "known_hosts" ou outra coisa?

Atualizar :

Como recomendado, tentei executar ssh com "-v" e inspecionar a saída da tentativa 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, depois de "Próximo método de autenticação: publickey", as referências do caminho do arquivo sejam "/ home / myuserid", não "/ home / serviceaccountid". Isso parece uma grande pista.

    
por David M. Karr 14.04.2017 / 22:54

1 resposta

0

Não consigo adicionar comentários à minha conta, mas este é apenas eu tentando saber mais para ajudar na solução de 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-2 da conta pessoal na sua máquina local, ela só encontrará chaves ssh para sua conta pessoal local, não a conta de serviço. Não importa se você adicionou a chave pública local-personal ao arquivo de chaves autorizadas da conta de serviço remoto.

I find it curious that in the last few lines, after "Next authentication method: publickey", the file path references are to "/home/myuserid", not "/home/serviceaccountid". That seems like a big clue.

Isso é ssh procurando por chaves na conta local. Deve ser o diretório pessoal de qualquer conta que você esteja chamando ssh. Se você espera que esse caminho seja o endereço de uma conta de serviço, será necessário efetuar login na conta de serviço e, em seguida, executar o ssh.

    
por 15.04.2017 / 00:57