Bash SSH配置文件限制为100个标识文件
我必须通过SSH连接到100多台机器。我制作了一个脚本来建立所有连接并执行所需的更改。问题是,我无法在每次为每个远程计算机执行脚本时键入密码。然后,我发现我可以在Bash SSH配置文件限制为100个标识文件,bash,ssh,operating-system,Bash,Ssh,Operating System,我必须通过SSH连接到100多台机器。我制作了一个脚本来建立所有连接并执行所需的更改。问题是,我无法在每次为每个远程计算机执行脚本时键入密码。然后,我发现我可以在/root/.ssh/目录中创建一个名为config的文件,在那里我可以存储如下行: IdentityFile /root/.ssh/id_rsa_XXXX 密钥对也保存在/root/.ssh/中,但问题是我可以在config文件中写入100个标识文件 你知道是否有一个解决办法使这成为可能吗 谢谢大家,这里的第一个问题!:) 每个服务
/root/.ssh/
目录中创建一个名为config
的文件,在那里我可以存储如下行:
IdentityFile /root/.ssh/id_rsa_XXXX
密钥对也保存在/root/.ssh/
中,但问题是我可以在config
文件中写入100个标识文件
你知道是否有一个解决办法使这成为可能吗
谢谢大家,这里的第一个问题!:) 每个服务器都有单独的ssh密钥吗?您可以绑定它们(每种类型/功能的服务器对应一个密钥)。这样,就不需要在配置文件中指定每一个 另一种解决方法是从命令行调用密钥,而不是像这样的配置文件:
ssh -i /root/.ssh/id_rsa_XXX -l user.name server.example.com
如果仔细操作,可以创建/root/.ssh/hostname,其中hostname是要连接到的服务器的实际主机名。例如:
/root/.ssh/server.example.com
然后可以这样编写脚本(BASH)(假设您调用脚本dossh.sh):
调用脚本,如下所示:
dossh.sh server.example.com
首先,如果你要连接100台服务器和100个密钥,那你就错了。如果确保私钥安全,则可以将公钥重新用于其他服务器
如果您试图一次将所有密钥加载到ssh,那么您的做法也是错误的。ssh配置有一个
Host
关键字,可以通过该关键字筛选应该在哪个服务器上使用哪个密钥。我建议你用它。否则ssh将不知道使用哪个服务器的密钥,并且它也克服了限制。你是说如果我使用主机关键字,我可以避免限制吗?是的。如果只加载特定主机所需的一个。
dossh.sh server.example.com