Estou usando o Ccygwin no WinXP (com o shell bash). Quero SCP um arquivo do meu host local para uma máquina remota - host2. No entanto, só posso SSH para uma máquina intermediária - host1 e, a partir daí, SSH para host2. (Observe, não consigo acessar o host2 do meu host local).
Eu pensei que tunelamento fosse minha resposta, mas quando tento montar um túnel
ssh -L 9999:localhost:9998 dalvarado@host1 'ssh -L 9998:localhost:1234 -N dalvarado@host2'
Mas depois de digitar este comando e pressionar Enter, o sistema simplesmente trava. Qual é a maneira correta de configurar um túnel e depois SCP um arquivo depois?
Obrigado, -
ssh
scp
ssh-tunnel
Dave
fonte
fonte
Respostas:
Isso já foi respondido melhor aqui .
Para resumir: coloque o seguinte em
~/.ssh/config
e, em seguida, simplesmente
scp
para target.machine a qualquer momento que você desejar proxy via proxy.machine!Também funciona para
ssh
, assim você economizará tempo também na máquina de destino.O crédito deve ser enviado para o usuário24925 que respondeu isso em 2011.
fonte
Para configurar um túnel SSH, use o seguinte formato:
Esse comando conecta a
host1
comouser
e túneis porta 9999 no computador que emite o comando para a porta 22 nohost2
.-N
é opcional ou você pode usar algo comotop
ouwatch
para manter a sessão ativa, se necessário.Em seguida, basta
scp
hospedar2 no localhost: 9999.fonte
scp
sintaxe de comando está incorreta. Tente istoscp -P 9999 hello.txt user@localhost:/path/to/destination/file
ondeuser
está o usuário nohost2
qual você deseja fazer login.Desde o OpenSSH 7.3 , você pode usar
-J
ou-o ProxyJump
especificar o host bastião / salto. Portanto, para SSH paranode2
vianode1
:O SCP não possui o
-J
argumento, mas permite-o
, portanto, isso funciona:fonte
Você pode primeiro scp o arquivo para host1, assim:
Em seguida, faça isso para obter o host2:
A
-t
opção parassh
forçá-lo a alocar um pseudo-terminal, o que pode tornar mais fácil para oscp
host1 solicitar uma senha / senha. Se você tiver o ssh-agent em execução e configurado em qualquer lugar, não deverá ser solicitada uma senha / senha.Eu ofereço essa alternativa, porque se você usasse um túnel, ainda precisaria de dois comandos: um para configurar o túnel e outro para copiar o arquivo através dele. Isso parece mais simples.
fonte