Estou tentando encapsular um servidor por meio de um servidor ponte. Até agora, consegui fazê-lo funcionar a partir do shell de comandos corretamente, usando o seguinte comando:
ssh -A -t bridge_userid@bridgemachine.com ssh -A remote_userid@remoteserver.com
Mas eu tenho tentado agrupar isso no meu ~/.ssh/config
arquivo e tenho problemas. Eu tentei:
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -A -t bridge_userid@bridge_userid.com ssh -A remote_userid@%h
Mas quando recebo, recebo a seguinte mensagem de erro remoteserver.com
e não sei ao certo o que está causando isso:
ksh: SSH-2.0-OpenSSH_6.8 ^ M: não encontrado
Eu sei que quando eu entro remoteserver.com
, meu shell é /usr/bin/ksh
.
Eu tentei adicionar argumentos de caminho aos comandos ssh no arquivo de configuração, mas não fez diferença.
Alguma idéia do que pode ser?
ssh -A remote_userid@remoteserver.com
como um comando para executar na máquina ponte, o config não fornece uma maneira de fornecer comandos padrão. O que você tenta fazer works
por si só, mas o ssh tenta usar o seu ProxyCommand
como um túnel e começa a disparar o protocolo SSH para baixo, onde há um shell aguardando na outra extremidade, em vez de um sshd escutando o protocolo SSH.
ProxyCommand
é assim que se destina a ser usado. Normalmente, ele é usado com o netcat, onde o ssh está canalizando sua saída através dele e o netcat está atuando como um túnel para a porta SSH do servidor de controle remoto . Você precisa de um ProxyCommand semelhante assh -W %h:%p bridge_userid@bridgemachine.com
se quiser usar esse recurso.