起動時に自動的にリバースSSH接続を設定する

起動時に自動的にリバースSSH接続を設定する

私のDigitalocean VPCへのリバースSSH接続を持つNATの後ろにPCがあります。私はこのリバースSSH接続を利用して自宅でオフィスPCにログインし(権限あり)、ファイルをコピーし、その他の重要な作業を行います。

一般的ではありませんが、オフィスPCが再起動し(停電などのため)、VPCへの逆SSH接続が失われることがわかりました。この場合、自宅のコンピュータからオフィスのコンピュータに接続できません。

次のスクリプトを実行してリバース接続+ダイナミックプロキシを実行して、自分のオフィスコンピュータが生成するトラフィックを匿名化します(検索情報を共有する必要がないため)。

autossh -CD 8080 -i digitalOcean -R 8081:localhost:22 root@IPofDigitalOceanPC

実際にはオフィスコンピュータにないため、再起動後にオフィスコンピュータでスクリプトを再実行することはできません。この問題を解決するために、次のcrontabをインストールしました。

注:rev.shファイルには上記の行が含まれています。 "digitalOcean"証明書とrev.shはにありますUbuntu home。したがって、./rev.shUbuntu端末で実行すると、動的プロキシを取得し、ym DigitalOceanサーバーにもアクセスできます。この方法は100%効果的です。

しかし、次のようにchrontabをインストールすると、私のUbuntu PCは動的プロキシを生成しません。 Google Chromeでこのプロキシを確認すると、プロキシが接続を拒否したと表示されるため、これを確認できます。

以下はroot cronejobで試したcronejobです。私も通常のユーザーとしてこれを試しましたが、まだ動作しません。

@reboot bash /home/user/rev.sh 
@reboot /home/user/rev.sh 
@reboot cd /home/user && ./rev.sh

その後、現在の数分前にchrontabをインストールして実行するのを待ちました。

24 12 8 * * * bash /home/user/rev.sh
24 12 8 * * * /home/user/rev.sh

これらも実施されていない。

私のエラーを発見するために親切に助けてください。このサイトには私の問題に似た質問がたくさんあります。だから多くの答えを参考にしましたが、そのどれも役に立たないようです。

ベストアンサー1

cron起動時にスクリプトを実行するのが良い考えなのかわかりません。私の考えにもっと適していると思われるもう1つのオプションは、以下のようにSystemDサービスを作成することです。ここ。次のファイルを作成します/etc/systemd/system/autossh.service

[Unit]
Description=Auto Reverse SSH
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service]
ExecStart=/full/path/to/autossh -CD 8080 -i digitalOcean -R 8081:localhost:22 root@IPofDigitalOceanPC
[Install]
WantedBy=multi-user.target

次に、rootとして次のコマンドを実行します。

systemctl enable autossh.service

おすすめ記事