通常情况下,我会只是做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?
您可以非常简单地配置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)