使用 SSH 更改多台服务器上的配置文件

使用 SSH 更改多台服务器上的配置文件

问题:

我正在尝试禁用多台服务器的 SSH 密码验证。这意味着我必须修改 sshd_config 文件。从

#PasswordAuthentication yes

PasswordAuthentication no

我真的不想一个一个地做。有什么方法可以用一个命令在多台服务器上分发/修改配置文件吗?

您可以做出的假设:

  • 这些服务器具有相同的操作系统
  • 我可以同时向多个服务器广播 SSH 命令

其他说明:

我设置配置文件来监听每个服务器上的不同地址和/或端口。

因此,无法通过从中央服务器下载更新的配置文件来完成此操作。

我更喜欢使用文本替换命令来完成工作

答案1

研究一下 Puppet、Ansible 或 cfengine 等配置管理工具。从长远来看,它们是有帮助的。

对于一次性操作,您可以使用 Augeas,这使得这种更改非常容易,甚至sed在大多数系统上都存在,无需进一步安装。

sed -i s/\#PasswordAuthentication\ yes/PasswordAuthentication\ no/ /etc/ssh/sshd_config

这可以通过一个简单的 ssh 命令发送:

ssh user@server sed ......

相关内容