在 HPC 计算机和本地计算机之间传输文件,中间有另一台服务器

在 HPC 计算机和本地计算机之间传输文件,中间有另一台服务器

我正在其他服务器上的 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 设置一个ProxyJumpProxyCommand- 这样它就应该适用于 ssh 和 scp。例如:

Host hpc
  Hostname    whatever.foo.ac.uk
  User        first
  ProxyJump   [email protected]

然后你就可以这样做

ssh hcp

或者

scp hcp:/path_to_remote/file localfile

等等,无论你本地的 shell 是什么,都是透明的。例如参见

相关内容