我需要能够设置一个ssh
无需交互的密钥系统。我不在乎是否需要安装软件包或以明文形式输入密码。
我如何才能建立一个设置ssh
密钥系统的系统,允许机器 Assh
使用 ssh 密钥进入机器 B,反之亦然,而无需交互?
答案1
以下是纯代码(复制粘贴不起作用!更改以下my-username
内容my-ip
)。在两台主机上运行:
#!/bin/bash
apt-get -y install sshpass
ssh-keygen -p -N "" -f ~/.ssh/id_rsa
sshpass -p 'my_password' ssh-copy-id my_username@my_host_2
my_host_2
在my_host_1
机器 2 上替换。
解释:
第一行,#!/bin/bash
叫做shebang。看这里了解更多信息。
第二行sshpass
无需交互即可安装。
第三行用于ssh-keygen
创建密钥。-q
表示安静;它不会询问太多。-N ""
表示没有密码,-f
表示将其保存在默认位置。
最后一行使用ssh-copy-id
和复制实际密钥sshpass
。您无法echo
通过 复制密码stdin
,因此我们使用sshpass
最接近的等价项。-p
是要使用的密码。 的参数ssh-copy-id
是要将密钥复制到的用户名和主机。