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/configarquivo 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.come 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.comcomo 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 workspor si só, mas o ssh tenta usar o seu ProxyCommandcomo 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.comse quiser usar esse recurso.