“ssh-copy-id”在幕后是如何工作的?

“ssh-copy-id”在幕后是如何工作的?

该程序ssh-copy-id实际上在幕后做了什么?能否像向对计算机科学有深入了解的孩子一样解释这些步骤?

它是否使用 SSH 规范中已有的协议,或者是否使用“欺骗”来复制密钥(例如尝试在目标系统上运行 shell 命令,就好像它是用户一样)? “目标”SSH 服务器是否需要ssh-copy-id事先了解并进行编码来处理它,或者它是否可以在任何操作系统上的任何 SSH 实现上工作?

答案1

ssh 复制 ID是一个脚本,而不是 C 程序,通常用 POSIX shell 编写。您可以检查:

$ file "$(command -v ssh-copy-id)"
/usr/bin/ssh-copy-id: POSIX shell script, ASCII text executable

您可以阅读其内容以了解更多详细信息。

一般来说,它会做类似的事情:

  • 对参数进行一些检查,ssh-agent以获取身份文件。
  • 使用 ssh 登录远程主机,进行一些设置,将公钥复制到主机然后退出。

相关内容