是否有可能让Perl脚本运行shell别名?我遇到了一个我们没有修改的Perl模块的情况,它所做的一件事是通过SSH登录到多个服务器以远程运行一些命令。可悲的是,一些系统(我也无法修改)有一个错误的SSH服务器,只要我的系统尝试发送SSH公钥就会断开连接。我有SSH代理运行,因为我需要它连接到一些其他服务器。是否有可能让Perl运行shell脚本别名?
我最初的解决方案是设置一个别名,将ssh设置为ssh -o PubkeyAuthentication = no,但Perl运行它在PATH中找到的ssh二进制文件,而不是尝试使用别名。
看起来像唯一的解决方案是禁用SSH代理,而我连接到问题服务器或重写执行实际连接的Perl模块。
如果你有特定的主机有问题,我会认为这将是首选的方式。然后,可以将主机(或与您的问题主机匹配的掩码)替换为*。 〜/ .ssh/config的文档位于ssh_config(5)中。 – opello 2009-11-03 14:20:12
搞乱之后,我认为.ssh/config选项会更好。我通过IP地址连接到所有问题主机(被告知DNS在这种情况下不可靠 - 完全不同的问题)。但是工作的系统,我使用主机名连接。所以主机10. * PubkeyAuthentication不应该很好地解决问题。 – 2009-11-03 16:29:29