我希望将本地机器上的~/.ssh/id_rsa.pub文件中的公共ssh密钥复制到远程主机上的~/.ssh/authorized_keys文件中,即两个ssh跃点之外。换句话说,localhost只具有ssh对host1的访问,而host1有对host2的ssh访问。我想将我的公共ssh密钥从localhost复制到host2。
要将ssh键复制到一跳之外的远程主机上,ssh文档提供以下命令:
ssh-copy-id -i ~/.ssh/mykey user@host有没有一种方法可以将密钥复制到一个命令中两个跃点之外的机器上?
发布于 2020-02-11 23:24:05
我不认为用ssh-拷贝-id可以跳双跳。您可以使用scp将文件从一台服务器跳到第三台服务器。看看人类scp。但是,您仍然需要做一些工作才能将文本放入authorized_keys并设置perms。
不过!
您可以使用ssh从服务器跳转到另一台服务器,然后在那里发出命令。
像这样的东西会把钥匙从这里复制到那里。您必须从下面的地狱复制您希望发送和粘贴的. .ssh/id_rsa.pub密钥,并明显地更改名称和ip地址。
类似的东西会跳过第一个服务器ssh进入第二个服务器并运行您的命令。
ssh -J mark@192.168.1.100 mark@192.168.1.110 echo mySupersecretKeyfromehell >> .ssh/authorized_keys && chmod 700 .ssh && chmod 600 .ssh/authorized_keys这假设您运行的是最新版本的ssh。
还可以通过将键放入变量来缩短最后一个命令。
注意不要单引号下面的滴答声!
MYKEYVAR="echo `cat .ssh/id_rsa.pub`"
ssh -J mark@192.168.1.100 mark@192.168.1.110 echo $MYKEYVAR >> .ssh/authorized_keys && chmod 700 .ssh && chmod 600 .ssh/authorized_keyshttps://unix.stackexchange.com/questions/567053
复制相似问题