これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドautosshです。
プログラム:
NAME
オートッシュ —sshセッションを監視して再起動します
SYNOPSIS
オートッシュ [-V] [-M ポート[:echo_port]] [-f] [SSH_オプション]
DESCRIPTION
オートッシュ sshのコピーを開始して監視し、必要に応じて再起動するプログラムです。
それが死ぬか、トラフィックの通過を停止する必要があります。
元のアイデアとメカニズムは、rstunnel(Reliable SSH Tunnel)からのものでした。 バージョン付き
の1.2 オートッシュ メソッドが変更されました: オートッシュ sshを使用してssh転送のループを構築します
(XNUMXつはローカルからリモート、もうXNUMXつはリモートからローカル)次に、テストデータを送信します。
戻ることを期待しています。 (アイデアはTerrence Martinのおかげです。)
バージョン1.3では、新しいメソッドが追加されています(Ron Yorstonのおかげで):ポートを指定できます
テストデータをエコーバックするリモートエコーサービス。 これは混雑と
リモートマシンのすべてのポート番号が衝突しないようにすることの悪化。 The
エコーサービスを使用する可能性がある状況では、loop-of-forwardingsメソッドを引き続き使用できます。
できません。
制御 SSH
SSH 終了する
オートッシュ 監視しているsshプロセスの死の方法を区別しようとします
適切に。 ルールは次のとおりです。
1. sshプロセスが正常に終了した場合(たとえば、誰かが「exit」と入力した場合
インタラクティブセッション)、 オートッシュ 再起動するのではなく終了します。
2。 もし オートッシュ それ自体がSIGTERM、SIGINT、またはSIGKILLシグナルを受信すると、
意図的に通知され、子sshプロセスを強制終了した後に終了します。
3。 もし オートッシュ それ自体がSIGUSR1シグナルを受信し、子sshプロセスを強制終了します。
新しいものを開始します。
4.定期的(デフォルトでは10分ごと)、 オートッシュ でトラフィックを通過させようとします
転送されたポートを監視します。 これが失敗した場合、 オートッシュ 子のsshプロセスを強制終了します(
まだ実行中です)、新しいものを開始します。
5.子sshプロセスが他の理由で停止した場合、 オートッシュ 開始しようとします
新しいもの。
スタートアップ 行動
最初の試行でsshセッションが終了ステータス1で失敗した場合、 オートッシュ
1.構文または接続設定に問題があると想定し、
再試行するのではなく終了します。
2.「発馬機」の時間があります。 最初のsshプロセスが最初の数日以内に失敗した場合
開始から数秒、 オートッシュ それが「最初から」決してそれを成し遂げなかったと仮定します
ゲート」、および終了します。これは、最初に失敗した認証、接続などを処理するためのものです。
この時間はデフォルトで30秒であり、調整できます(AUTOSSH_GATETIMEを参照)。
以下の環境変数)。 AUTOSSH_GATETIMEが0に設定されている場合、両方の動作
無効:「開始ゲート」がなく、sshを使用してもautosshが再起動します
終了ステータスが1の最初の実行で失敗します。「開始ゲート」時間も
の場合は0に設定します -f autosshへのフラグが使用されます。
続きを読む 障害
ssh接続が失敗し、再起動しようとすると、すぐに失敗します。 オートッシュ
再起動の試行を遅らせ始め、徐々に後退し、
の最大間隔 オートッシュ ポーリング時間(通常は10分)。 オートッシュ 「うんざり」することができます
おそらくSIGHUP( "kill -HUP")を使用して、シグナルを送信して再試行します。
接続
接続は無人で確立する必要があるため、 オートッシュ 何らかの形で
自動認証を設定します。 ssh-agentでのRSAAuthenticationの使用は
推奨される方法。 サンプルのラッパースクリプトは、エージェントが存在するかどうかを確認しようとします
現在の環境で実行し、ない場合は開始します。
sshがそれ自体で機能することを確認する必要があり、設定できることを十分に強調することはできません。
あなたがそれを実行しようとする前にあなたが望むセッションをアップしてください オートッシュ
トンネリングを行っていて、をサポートしていない古いバージョンのsshを使用している場合 -N 国旗、
アップグレードする必要があります(バージョンにはセキュリティ上の欠陥があります)。 アップグレードできない場合は、アップグレードすることをお勧めします
rstunnelと同じように実行し、「sleep99999999999」などの実行コマンドをsshに与えます。
OPTIONS
-M ポート[:echo_port]
使用するベース監視ポートを指定します。 エコーポートがない場合、このポートと
そのすぐ上のポート( ポート + 1)他に何も使用していないものにする必要があります。
オートッシュ ベースモニタリングポートでテストデータを送信し、
上記のポート。 たとえば、「-M 20000" オートッシュ フォワードを設定しますので
ポート20000でデータを送信し、20001で受信できること。
または、リモートエコーサービス用のポートを指定することもできます。 これは
標準のinetdエコーサービスを使用する場合は、ポート7。 エコーポートが
指定された場合、指定されたモニターポートのみが使用され、モニターを伝送します
両方向のメッセージ。
多くの人がechoサービスを無効にしたり、inetdを無効にしたりするので、これを確認してください
サービスはリモートマシンで利用できます。 一部のオペレーティングシステムでは、
サービスがローカルホスト(ループバックインターフェイス)でのみリッスンするように指定します。
この使用には十分です。
エコーサービスはもっと複雑なものかもしれません:おそらくデーモン
sshトンネルのグループを監視します。
モニターポートを0に設定すると、モニター機能がオフになり、autosshは
sshの終了時にのみsshを再起動します。 たとえば、最新バージョンを使用している場合
OpenSSH、あなたはを使用して探索したいかもしれません ServerAliveInterval と
ServerAliveCountMax SSHクライアントがそれ自体を検出しなくなった場合にSSHクライアントを終了させるオプション
サーバーに接続されています。 多くの点で、これはより良い解決策かもしれません
監視ポート。
-f sshを実行する前にautosshをバックグラウンドにドロップします。 The -f フラグが削除されます
sshに渡された引数から。 間に決定的な違いがあることに注意してください -f
autosshを使用して、 -f sshで:と一緒に使用する場合 オートッシュ sshは要求できなくなります
パスワードまたはパスフレーズ。 いつ -f が使用される場合、「開始ゲート」時間(を参照)
AUTOSSH_GATETIME)は0に設定されます。
-V 原因 オートッシュ バージョン番号を表示して終了します。
ENVIRONMENT
接続監視ポートを設定するフラグ以外は、 オートッシュ 環境を使用します
機能を制御するための変数。 sshはまだオプションの手紙を集めているようです、そして
これは、衝突を回避する最も簡単な方法のようです。
AUTOSSH_DEBUG
この変数が設定されている場合、ログレベルはLOG_DEBUGに設定され、
オペレーティングシステムはそれをサポートし、syslogはログエントリをstderrに複製するように設定されています。
AUTOSSH_FIRST_POLL
最初の接続テストの前に待機する時間を指定します。 その後、将軍
ポーリング時間が使用されます(以下のAUTOSSH_POLLを参照)。
AUTOSSH_GATETIME
接続が成功したと見なす前にsshが稼働している必要がある時間を指定します。 The
デフォルトは30秒です。 AUTOSSH_GATETIMEが0に設定されている場合、
ゲートタイムの動作はオフになりましたが、autosshはの最初の実行の失敗も無視します
ssh。 これは、起動時にautosshを実行するときに役立つ場合があります。
AUTOSSH_LOGLEVEL
syslogが使用するレベルに対応するログレベルを指定します。 だから0-7と7
おしゃべりです。
AUTOSSH_LOGFILE
それを指定します オートッシュ syslogではなく、名前付きログファイルを使用する必要があります。
AUTOSSH_MAXLIFETIME
プログラムを実行する最大秒数を設定します。 一度の数
秒が経過すると、sshの子が強制終了され、プログラムが終了します。
AUTOSSH_MAXSTART
sshを開始する回数を指定します。 負の数は、制限がないことを意味します
sshが開始された回数。 デフォルト値は-1です。
AUTOSSH_MESSAGE
接続のテスト時に送信されるエコーメッセージにメッセージを追加します。
AUTOSSH_NTSERVICE
(Cygwinのみ。)「yes」に設定すると、autosshはNTサービスとして実行するように設定されます。
cygrunsrv。 これにより、 -N sshのフラグがまだ設定されていない場合は、ログ出力をに設定します
stdoutであり、ssh exitでの動作を変更して、
通常の出口。
AUTOSSH_PATH
パスと異なる場合に備えて、ssh実行可能ファイルへのパスを指定します
でコンパイルされました。
AUTOSSH_PIDFILE
autosshpidを指定されたファイルに書き込みます。
AUTOSSH_POLL
接続ポーリング時間を秒単位で指定します。 デフォルトは600秒です。 そうでもなければ
AUTOSSH_FIRST_POLLが使用され、最初のポーリング時間がポーリング時間と一致するように設定されます。 もしも
ポーリング時間はネットワークタイムアウトの15倍未満(デフォルトはXNUMX秒)です。
ネットワークタイムアウトは、ポーリング時間の1/2に下方修正されます。
AUTOSSH_ポート
接続監視ポートを設定します。 主にsshが適切な場合 -M 一部で
時間。 ただし、この使用の可能性があるため、AUTOSSH_PORTは -M 国旗。 価値
0の場合、監視機能がオフになります。
Debian固有 動作
AutosshのDebianバージョンは、ラッパーを使用して無料の監視ポートを自動的に選択します
と -M AUTOSSH_PORTをオーバーライドします。詳細については、/ usr / share / doc / autossh /README.Debianを参照してください。
情報を表示します。
onworks.netサービスを使用してオンラインでautosshを使用する