我需要在许多 Linux 主机上运行相同的更改。在有人建议 Ansible 之前——那是不可能的——其中许多是 Centos 5,它有 python 2.4,而当前版本的 Ansible 至少需要 2.7。
我编写了一个很小的 PHP 脚本,它在本地(通过 proc_open())调用 ssh(使用 -o KexAlgorithms=+diffie-hellman-group1-sha1)来连接并向远程系统发送命令。这在更现代的系统上完美运行。在 Centos 5 机器上,我得到了 ssh 连接和 shell 提示符,但它发送的第一个命令永远不会被执行。对于它工作的主机,我只需要附加一个“\n”。我在 Centos 机器上尝试了 '\n'、'\r\n' 和 '\n\n',但没有成功。
当我在这些主机上手动输入命令(并按“enter”键)时,这些命令会起作用。
有人知道为什么 Centos 中命令不执行吗?