2016-11-12 15 views
-1
autossh -M 10984 -v -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -R 6889:localhost:22 [email protected] 

上記のコマンドが機能します。以下はそうではありません。 autosshするためにそれを渡すときにsshのログファイルオプションを受け付けないAutossh

autossh -M 10984 -E /home/pi/ssh.log -v -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -R 6889:localhost:22 [email protected] 

それは言う、

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

は、どのように私はSSHオプションとして、ログファイルを指定することができますか?

+0

オプションは 'ssh'に渡されるべきです。どのバージョンを使用していますか? – Jakuje

+0

私はautosshバージョン1.4dを使用しています。 バージョン1.4eでも同じことを試しました。同じ結果。 – mbtamuli

+0

私はちょうどパッケージマネージャを使いました。 私はRaspbianをRaspberry Pi 2で実行しています。 私はラップトップでArch Linuxを実行しています。 – mbtamuli

答えて

0

autosshの制限です。 autosshソースコードには、プログラムが受け入れるコマンドラインスイッチのリストが含まれています。リストは明らかにSSHオプションのすべてを含めることになっているが、それは「E」が含まれていませんと

  1. 実行autossh:

    #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': 
    ... 
    

    は、現在ではいくつかの回避策があるようです

    autossh -M 10984 -v -o ... [email protected] 2>>/some/log/file 
    

    autosshから起動されたSSHインスタンスは、リダイレクトを継承する必要があります。

  2. ssh "-y"オプションを使用すると、syslogを介してログに記録し、syslogに書き込みたい場所にメッセージを書き込ませることができます。
  3. 「-E」オプションのサポートを追加するようにautossh source codeを変更します。
  4. autossh maintainerに問題を報告し、後のリリースで修正することを願っています。
+0

最初の回避策は、起動するsshプロセスではなく、autosshからのエラーだけをリダイレクトします。右? – mbtamuli

+0

1つのプロセスが別のプロセスを起動すると、通常、新しいプロセスが古いプロセスの標準ファイルハンドルを継承します。私は自分自身でa​​utosshを使っていませんが、sshの子プロセスの標準エラーに特別なことは記述していませんので、sshがautosshの標準エラーを継承することを期待しています。あなたはそれを試して何が起こるか見ることができます。 – Kenster

関連する問題