如何在多跳 ssh 隧道中使用 ssh-copy-id?

Jac*_*ern 5 ssh ssh-tunneling

我想将~/.ssh/id_rsa.pub本地计算机上的~/.ssh/authorized_keys文件中的公共 ssh 密钥复制到两个 ssh 跃点之外的远程主机上的文件中。换句话说,localhost只有 ssh 访问权限host1,但host1具有 ssh 访问权限host2。我想将我的公共 ssh 密钥从 复制localhosthost2

要将 ssh 密钥复制到一跳之外的远程主机,ssh 文档提供了以下命令:

ssh-copy-id -i ~/.ssh/mykey user@host
Run Code Online (Sandbox Code Playgroud)

有没有办法在单个命令中将密钥复制到两跳之外的机器上?

Ada*_*and 13

你可以通过任何ssh选项ssh-copy-id-o选项。通过使用该ProxyJump选项,您可以ssh-copy-id通过跳转主机将您的密钥复制到主机。

这是我通过跳转主机 jump.spack.org 将我的 ssh 密钥复制到 leia.spack.org 的示例:

$ ssh-copy-id -o ProxyJump=jump.spack.org leia.spack.org
adam@leia.spack.org's password:

Number of key(s) added:        1
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令对其进行测试:

$ ssh -J jump.spack.org leia.spack.org
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-42-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

  • 我认为这是正确的答案,接受的答案看起来很笨拙 (2认同)