システムはNATまたはファイアウォールの背後にある可能性があるため、接続を保証する方法はありません。パブリックIPアドレスを知っていたとしても、外部からボックスへの接続を開始できる可能性はほとんどありません。
したがって、次善の策は、ボックス自体に1つ以上の既知のサーバーへの接続を開始させることです。発信接続は、ファイアウォールを通過する可能性がはるかに高く、NATを通過するために不可欠です。
これを機能させるには、固定アドレスとポートで接続をリッスンし、sshセッションをそのような接続に転送する準備ができているプロセスを備えたサーバーが必要です。ボックス自体は、そのサーバーへの発信接続を定期的に、おそらく1時間ごとに試行する必要があります。
最も簡単なのは、定期的にsshトンネルを確立しようとする/etc/rc.initスクリプト(または特定のLinuxディストリビューションで同等のもの)を使用することです。次のようになります。
ssh -i remotekey.pem -R 33333:localhost:22 user@my.server.com
これは、サーバーで「remotekey.pem」を使用してキーベースのログイン用に「user」を設定していることを前提としています。次に、サーバーから、を使用してリモートボックスにログインします。
ssh -p 33333 boxuser@localhost
これは、「boxuser」がリモートボックスの有効なユーザーであることを前提としています。