首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ssh拷贝id与多跳ssh隧道?

如何使用ssh拷贝id与多跳ssh隧道?
EN

Unix & Linux用户
提问于 2020-02-11 22:09:36
回答 1查看 9K关注 0票数 11

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

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

代码语言:javascript
复制
ssh-copy-id -i ~/.ssh/mykey user@host

有没有一种方法可以将密钥复制到一个命令中两个跃点之外的机器上?

EN

回答 1

Unix & Linux用户

发布于 2020-02-11 23:24:05

我不认为用ssh-拷贝-id可以跳双跳。您可以使用scp将文件从一台服务器跳到第三台服务器。看看人类scp。但是,您仍然需要做一些工作才能将文本放入authorized_keys并设置perms。

不过!

您可以使用ssh从服务器跳转到另一台服务器,然后在那里发出命令。

像这样的东西会把钥匙从这里复制到那里。您必须从下面的地狱复制您希望发送和粘贴的. .ssh/id_rsa.pub密钥,并明显地更改名称和ip地址。

类似的东西会跳过第一个服务器ssh进入第二个服务器并运行您的命令。

代码语言:javascript
复制
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。

还可以通过将键放入变量来缩短最后一个命令。

注意不要单引号下面的滴答声!

代码语言:javascript
复制
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_keys
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/567053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档