我只是想问一下关于使用ClusterSSH(cssh)使用我们内部用来连接远程机器的自行开发的 ssh-like/ssh-clone 应用程序。
我尝试ssh = /path/to/ssh_clone
在$HOME/.csshrc
或中使用覆盖/etc/csshrc
(甚至通过 传递它-C
)。不幸的是,cssh
使用调试运行显示它仍然试图以 而ssh -l user machine_ip
不是连接到远程机器ssh_clone -l user machine_ip
。
如果您能提供任何关于如何解决此问题的想法/建议,我们将不胜感激。TIA。
编辑:版本信息
$ cssh -v
Version: 4.01_02
答案1
如果您的 ssh_clone 具有与 ssh 相同的基本调用语义(看起来确实如此),那么一个简单的替代方法是将 ssh_clone 放在其自己的目录中,将其重命名为 ssh,然后运行 cssh 并将该新目录放在 PATH 的开头。只要 cssh 在您的 PATH 中搜索 ssh,它就会首先找到您的克隆版本并使用该版本。
如果您经常从命令行运行 cssh,则可以使用一个简单的包装脚本,这样正常的 ssh 调用仍然可以获得正确的程序:
#!/bin/sh
# cssh_wrapper.sh
PATH="/path/to/ssh_clone_dir:${PATH}"
export PATH
cssh "$@"
答案2
仔细检查您是否修改了正确的文件。
运行时cssh
它会自动写出一个~/.csshrc
文件。在我的版本中,这个文件有 48 行。您无需编辑新文件,只需修改以 开头的行即可ssh=
。
使用 验证配置是否正确设置cssh -u | grep ^ssh=
。
如果您尝试修改/etc/csshrc
,我很确定.csshrc
用户主目录(已经存在并包含该ssh=
行)中的将覆盖全局配置。
如果这些都没有帮助,请删除所有这些配置文件,运行cssh
一次(不需要参数),然后修改.csshrc
主目录中生成的文件。
更新:既然它似乎仍然不起作用,请尝试验证您的版本是否未打补丁或类似的东西。尝试grep parse_config_file $(type -p cssh)
获取提示。