Túnel ssh sem senha

0

Eu tenho minha máquina local (um mac) e quero acessar o servidor B (linux). O servidor B precisa ser acessado através do servidor A (linux). Eu configurei um túnel modificando o arquivo .ssh / config em minha máquina local da seguinte forma:

Host serverB
 HostName serverB.com
 User Ant
 ProxyCommand ssh -q -Y serverA.com -W %h:%p

Isso costumava funcionar corretamente [0]. Em seguida, configuro o login sem senha de local para serverA e de serverA para serverB usando chaves ssh. Isso significa que eu posso fazer

> ssh [email protected]
(serverA)> ssh [email protected]
(serverB)>

e tudo funciona corretamente. Agora o que eu quero é poder conectar ao servidor B sem senhas; mas se eu fizer

> ssh [email protected]

Me perguntam as senhas para severA e B para continuar. Esta é a saída de ssh -v Ant@serverB :

OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /Users/Ant/.ssh/config
debug1: /Users/Ant/.ssh/config line 16: Applying options for serverB
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: Executing proxy command: exec ssh -q -Y serverA.com -W serverB.com:22
debug1: identity file /Users/Ant/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Ant/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Ant/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Ant/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Ant/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Ant/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Ant/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Ant/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6
debug1: permanently_drop_suid: 501
[email protected]'s password: 

Eu posso ver que está tentando usar o login de chave, mas algo está errado. Deixe-me também adicionar que minha chave RSA é salva em um local não padrão, então adicionei isso ao meu arquivo .ssh / config:

IdentityFile ~/.ssh/key_serverA

Alguma opinião?

[0]: Por algum motivo, isso não funciona mais, pois o nome de usuário está errado. Ele solicita minha senha em [email protected] em vez de [email protected]

EDITAR

Eu encontrei uma solução. O problema era que, por algum motivo, o ssh tentava acessar o serverA usando local_username em vez de Ant (o nome de usuário no serverA e serverB). Para resolver o problema, modifiquei o comando config tunnel, adicionando explicitamente meu nome de usuário:

Host serverB
 HostName serverB.com
 User Ant
 ProxyCommand ssh -q -Y [email protected] -W %h:%p

Isso corrigiu o problema e agora o login sem senha também funciona com serverB! : -)

    
por Ant 06.02.2018 / 09:56

1 resposta

2

A opção User em uma seção Host é aplicada somente para conexões correspondentes a esse host, e não necessariamente para quaisquer comandos iniciados para proxy, etc., para os quais as configurações de configuração ssh serão aplicadas independentemente.

Portanto, o ProxyCommand deve explicitamente ter Ant@serverA ou deve haver outro Host bloco que serverA corresponde, definindo User Ant para ele.

    
por 06.02.2018 / 10:31