![在 HPC 计算机和本地计算机之间传输文件,中间有另一台服务器](https://linux22.com/image/1186285/%E5%9C%A8%20HPC%20%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%92%8C%E6%9C%AC%E5%9C%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B9%8B%E9%97%B4%E4%BC%A0%E8%BE%93%E6%96%87%E4%BB%B6%EF%BC%8C%E4%B8%AD%E9%97%B4%E6%9C%89%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我正在其他服务器上的 ssh Linux 服务器上工作。要登录,我必须先登录到第一台服务器,然后从这台服务器转到我工作的服务器。
我用别名来做这件事
ssh -J [email protected] [email protected]
如果我想scp
使用[电子邮件保护]到我的本地计算机我首先将文件移动到[电子邮件保护]然后从这里传到我的电脑。有没有办法直接做到这一点???
答案1
该scp
命令-J
也能理解该选项。因此,与你的命令类似ssh
,你可以执行
scp -J [email protected] [email protected]:junk.file local/garbage
答案2
我建议不要使用别名,而是创建一个 ~/.ssh/config 文件条目,在其中为 Host whatever.foo.ac.uk 设置一个ProxyJump
或ProxyCommand
- 这样它就应该适用于 ssh 和 scp。例如:
Host hpc
Hostname whatever.foo.ac.uk
User first
ProxyJump [email protected]
然后你就可以这样做
ssh hcp
或者
scp hcp:/path_to_remote/file localfile
等等,无论你本地的 shell 是什么,都是透明的。例如参见