通常在过去,我总是在必要时手动将 SSH 公钥复制到遥控器。我使用的是 Mac,我最终决定开始使用ssh 复制 ID为了让我的生活更简单,所以我只是使用自制程序来安装它。
我刚用过ssh 复制 ID第一次,对结果有点困惑。
在我的本地计算机上,当查看我的id_rsa.pub键,它结束于用户名@机器名。我喜欢这个,它使我可以轻松识别稍后可以在远程计算机上删除的密钥。
我刚用过ssh 复制 ID在我的本地计算机上将我的公钥移动到远程,然后查看授权密钥遥控器上的文件。我注意到在遥控器上而不是我的公钥以结尾我的用户名@我的机器名(如预期)现在结束于/用户/myusername/.ssh/id_rsa??
为什么会出现差异?有没有办法强制使用 ssh-copy-id用户名@机器名就像在我的本地机器上一样吗?
这可能只是我对 SSH 和密钥的误解,但有什么想法值得赞赏吗?
编辑:
刚刚发现只有当我排除我的身份文件并采用默认值时才会发生这种情况。
基本上如果我只这样做:ssh-copy-id 用户@主机名然后我在授权密钥遥控器上的文件。
如果我指定我的公钥:ssh-copy-id -i ~/.ssh/id_rsa.pub 用户@主机名然后一切都按预期复制,使用我的用户名@机器名正如预期的那样?!
是什么造成了这种奇怪的现象呢?以下链接表示它应该始终默认使用我的id_rsa.pub无论如何,我不需要指定它来在遥控器上获得正确的注释,应该吗?http://linux.die.net/man/1/ssh-copy-id
答案1
-i
运行时添加选项ssh-copy-id
。手册中对此进行了解释:
Default behaviour without -i, is to check if 'ssh-add -L' provides any
output, and if so those keys are used. Note that this results in the
comment on the key being the filename that was given to ssh-add(1) when
the key was loaded into your ssh-agent(1) rather than the comment con-
tained in that file, which is a bit of a shame. Otherwise, if ssh-add(1)
provides no keys contents of the default_ID_file will be used.