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
ssh-tunneling
ssh-config
Eric B.
fonte
fonte
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 [email protected]
se quiser usar esse recurso.ssh -A [email protected]
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 fazerworks
por si só, mas o ssh tenta usar o seuProxyCommand
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.Respostas:
A resposta de Jakuje está certa, mas desde o OpenSSH
7.3
, agora você pode usar o-J
ProxyJump
que é mais fácil. Veja minhas anotações:OpenSSH
7.3
ou superiorUse
ProxyJump
. Conforme explicado no manual:~/.ssh/config
Exemplo de ProxyJump~/.ssh/config
Conectar com
Adicionar
-v
para saída detalhadaExemplo de
-J
linha de comando ProxyJump~/.ssh/config
Conectar com
Ou use
-o
OpenSSH
5.4
ou superiorUse
ProxyCommand
com-W
~/.ssh/config
Conectar com
Ou use
-o
OpenSSH abaixo
5.4
~/.ssh/config
Conectar com:
Ou use
-o
Fontes
-J
adicionado no OpenSSH 7.3-W
adicionado no OpenSSH 5.4fonte
Você não precisa
netcat
na sua ponte. Como o DanSut propôs nos comentários, você pode usar assh -W
opção de linha de comando, essa configuração deve funcionar para você:fonte