当公钥无法远程使用时自动运行 ssh-copy-id

当公钥无法远程使用时自动运行 ssh-copy-id

假设我有一堆远程服务器,我希望能够通过 ssh 访问它们。在~/.ssh/config类似的事情中

Host ManyHosts-*
    IdentityFile /home/pseyfert/.ssh/id_for_ManyHosts
    AddKeysToAgent yes
    PasswordAuthentication yes
    PubkeyAuthentication yes
    PreferredAuthentications publickey,keyboard-interactive,password

因此,当我有一个 ssh 代理正在运行(尚未运行)ssh-add并连接到已经拥有我的公钥的主机时,我会

  • 跑步ssh ManyHosts-001
  • 被要求提供我的密钥密码
  • 连接到ManyHosts-001
  • 与已经拥有我的公钥的主机的后续连接将跳过密码短语步骤,因为 ssh 代理已经拥有该密钥。

请注意这比

  • 跑步ssh ManyHosts-001
  • 注意密码提示
  • ^C
  • 跑步ssh-add ~/.ssh/id_for_ManyHosts
  • 输入密码
  • 跑步ssh ManyHosts-001

当连接到没有我的公钥的主机时,工作流程通常会变成

  • 跑步ssh ManyHosts-099
  • 注意密码提示
  • ^C
  • 跑步ssh-copy-id ManyHosts-099
  • 输入密码
  • 运行ssh ManyHosts-099以连接。

我想知道是否有一个自动化程序ssh-copy-id具有以下使用模式

  • 跑步ssh ManyHosts-099
  • 公钥不可用,获取密码提示
  • 输入密码
  • 连接建立,公钥复制到主机,我在主机上收到 shell 提示。

相关内容