Autossh不接受ssh的日志文件选项

时间:2016-11-12 19:55:38

标签: ssh autossh

autossh -M 10984 -v -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -R 6889:localhost:22 user@rpi.local

以上命令有效。下面的那个没有。

autossh -M 10984 -E /home/pi/ssh.log -v -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -R 6889:localhost:22 user@rpi.local

它说,

/usr/lib/autossh/autossh: invalid option -- 'E'`

如何在将日志文件传递给autossh时将其指定为SSH选项?

1 个答案:

答案 0 :(得分:0)

这是autossh的限制。 autossh源代码包含程序接受的命令行开关列表。该列表显然应该包含所有ssh选项,但它不包含" E":

#define OPTION_STRING "M:V1246ab:c:e:fgi:kl:m:no:p:qstvw:xyACD:F:I:MKL:NO:PR:S:TVXY"
...
/*
 * We accept all ssh args, and quietly pass them on
 * to ssh when we call it.
 */
while ((ch = getopt(argc, argv, OPTION_STRING)) != -1) {
    switch(ch) {
    case 'M':
...

目前似乎有一些解决方法:

  1. 运行autossh,标准错误指向所需文件:

    autossh -M 10984 -v -o ... user@rpi.local 2>>/some/log/file
    

    从autossh启动的SSH实例应继承重定向。

  2. 使用ssh" -y"用于记录syslog的选项,并让syslog将消息写入您希望它们写入的位置。
  3. 修改autossh source code以添加对" -E"的支持选项。
  4. 将问题报告给autossh maintainer,并希望他在以后的版本中修复此问题。