假设我有一堆远程服务器,我希望能够通过 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 提示。