デフォルトでは、SSHサーバー(マシンA)とSSHクライアント(マシンB)がインターネットにアクセスできる限り、ネットワーク構成に関係なくTeamViewerなどのタスクを実行できるようにしたいと思います。コンピュータC)、アクセス権を得ることができます。その理由は、コンピュータAを移動して接続し、事前に設定された複数のWi-Fiネットワーク(各ネットワークは一意または互いに異なる)の1つに自動的に接続できるようにしたいからです。ネットワークでポート転送または同様の機能を設定し、コンピュータBからインターネット経由でログインできます。
どうすればいいですか?ハンドシェイクを支援するために静的IPアドレスを使用してサーバーに何かを設定することは問題ありませんが、何かがすでに存在する場合(teamviewerのように)、サードパーティサーバーを使用してもかまいません。
明確にするために編集:ABとCという3つのコンピュータがあります。
Aは、任意の場所で電源をオン/オフし、事前設定されたWiFiネットワークに接続するヘッドレスラズベリーパイです.
Bは、接続したい適切なモニター、キーボードなどがあるシステムです。
Cは、静的IPアドレスを持ち、BでSSHを安定して使用でき、BがAに接続するために必要なすべてをインストールできるリースAWSサーバーです。
ベストアンサー1
インターネットにマシンCがあるので、そこに呼び出された特別なアカウントを作成し、公開/秘密鍵を使用してAにアカウントを生成すると、公開鍵をCのアカウントsesame
にコピーしました。sesame
これでAからCにログインできますが、次のことができます。
ssh -N -R 19930:localhost:22 sesame@yourserverC
(たとえば、10秒間スリープステートメントと組み合わせてWiFiがシャットダウンして接続が切断された場合は、接続をリセットするために無限ループでラップできます。)
マシンBは通常Cにあるアカウントにログインします(それはそのアカウントかもしれませんが、必ずしもそうではありません。sesame
私は別のアカウントを使用します)。 Cを入力したら、次のコマンドを使用してAにログインします。
ssh localhost -p 19930
もちろん、19930以外の数字を使用することもできます。
Aの秘密鍵がパスワードで保護されていない場合は、ssh -N -R ...
次から実行できます。この場合、コンピュータAが侵害/盗難に遭った場合は、サーバーCのリスクが制限されるように機能が制限された別のアカウントを作成して/etc/rc.local
ください。sesame
そのため、B から C に移動するには別のアカウントを使用することをお勧めします。
sesame
実際にはinのログインシェルを/etc/passwd
toに設定できるため、/bin/false
このアカウントを使用してログインすることはできません。