コンピュータを起動し、中断してSSH接続を継続的に維持します。

コンピュータを起動し、中断してSSH接続を継続的に維持します。

私の情報は次のとおりです。

  • SOCKS5プロキシとして使用されるSSH接続があります。コンピュータの電源を入れるたびに再初期化する必要があるのは面倒です。

  • ServerAliveIntervalに設定しました60~/.ssh/config追加する権限がなく、ClientAliveInterval追加しても同じ効果があります。

  • 私が受け取った特定のエラーメッセージは「壊れたパイプ」でした。screenそれともtmuxここでは役に立ちません。毎回追加する必要があるので、再度 numero uno に戻ります。

  • autosshうまくいかないようです。実行してautossh -M 0 -DPORT aliasタスクマネージャで見たところ、5分待ってもSSH接続が再開されないようでした。

上記の3つのオプションのうちの1つを使用するように多くの質問を読んでいますが、どちらも目覚めたり一時停止したりすることには関係ありません。私はこれを一度だけ(コンピュータにログインしたとき)発生させたいので、いくつかのbash initスクリプトに入れることはできません。ただし、コンピュータを同時に使用している間にSSH接続が失われても、SSH接続はアクティブなままにしたいと思います。目標を達成するためにどのような効果の組み合わせを使用しますか?

答え1

接続持続性

永続接続にはサーバー側サポートが必要です。これは現在opensshサーバーでは利用できません(そして今後はそうではありません)。

クライアント部分は数年前に実装されており、有名UseRoamingこの機能は数週間前にopensshから削除されました。この機能は機能しておらず、主なセキュリティ障害。 SSHサーバーでも機能する可能性がありますが、appgate.comこの脆弱性について初めて聞きました。

クライアント/サーバーのアクティビティ間隔は、一時停止とウェイクアップの間にIPアドレスを変更しない場合にTCP接続を維持している間のみ有効です。

ネットワーク起動後のスクリプト

ifupあなたの場合は、スクリプト(ネットワークインターフェイスの起動後に実行されるスクリプト)を使用してソリューションを検討します。/sbin/ifup-localSOCKS5を起動すると、次のようになります。

#!/bin/sh
if [[ "$1" == "eth0" ]]
then
  ssh -DPORT alias
else
  #DO_NOTHING
fi

スクリプトを実行可能にすることを忘れないでくださいsudo chmod +x /sbin/ifup-local。ネットワークインターフェースやその他の項目を区別して、スクリプトにさらに検査や項目を追加することもできます。源泉

答え2

(少し話題から抜け出した答えですが、あなたの場合には役に立つかもしれません)

UDP経由のOpenVPNを介してsshを実行できます(ファイアウォールで許可されている場合)。このアプローチは効果的ですが、再接続にはかなりの遅延が発生します(1分ほど)。

しかし、使えるなら試してみてください。モシュ。最初から接続の持続性を念頭に置いて構築されました。

関連情報