scp 使用 ssh 隧道

Man*_*ini 4 scp ssh-tunneling

通常情况下,我会只是做scp file myuser@server1:~/(和输入密码),但现在我需要首先scp file myuser@server2:~/,然后ssh myuser@server2从我到服务器2,然后从Server2上做scp file myuser@server1:~/

我尝试这样做ssh -L 8888:server1:22 myuer@server2,它向我询问密码,就像我这样做时一样ssh myuser@server2,它只是连接到 server2 而不是 server1。

我怎样才能让它工作,以便我可以scp直接从我到 server1?

Jak*_*uje 5

您可以非常简单地配置ProxyCommand/ProxyJump以便您可以scp直接连接到远程服务器。~/.ssh/config使用以下内容创建一个:

Host server1
  ProxyCommand ssh -W %h:%p server2
Run Code Online (Sandbox Code Playgroud)

然后你就可以直接 scp 了:

scp local.file server1:/path/to/remote.file
Run Code Online (Sandbox Code Playgroud)

如果您真的坚持端口转发,那么在使用您提供的第一个命令创建“隧道”之后:

ssh -L 8888:server1:22 server2
Run Code Online (Sandbox Code Playgroud)

您将需要以这种方式传输数据(其中-P指示设置转发连接的端口):

scp -P 8888 local.file server1:/path/to/remote.file
Run Code Online (Sandbox Code Playgroud)