Ubuntu サーバーとして小さな PC をセットアップし、ssh 経由で接続できるように ssh-server を構成しました。問題はここから発生します。ISP から外部 IP が提供されておらず (すべてのデバイスに 1 つの外部 IP があります)、それを変更できないためです。そこで、調査に基づいて、無料レベルの AWS インスタンスを作成し、そこに OpenVPN を作成しました。
だから私は次のように動作しています:
- PC1
- OpenVPN サーバーをホストする外部 IP を持つ AWS インスタンス
- PC2
PC1 と PC2 は AWS 上の OpenVPN サーバーに接続されており、PC2 を使用して SSH 経由で PC1 に接続できます。PC2 を
OpenVPN に接続せずに、PC2 を使用して SSH 経由で PC1 に接続するためのオプション (ある場合) は何ですか。または、SSH 接続用にのみ OpenVPN に接続し、残りのトラフィックでは OpenVPN を使用しないオプションがあるでしょうか。
答え1
OpenVPN については何も知りません。私の場合は、SSH トンネルを使用しています。基本は非常にシンプルですが、完全なセットアップはやや難しい場合があります。とはいえ、任意の数のコンピューターをトンネリングできます (すべてのトンネルを同時に使用しない限り、高速です)。
ssh -fNR 2222:localhost:22 aws-computer
これは、使用するキーとユーザー名/パスワードを定義するファイルaws-computer
内の名前です。~/.ssh/config
これで、ssh で接続するときに以下aws-computer
を使用できます:
ssh -p 2222 pc1
単一の通常の SSH 接続があるかのように接続します。
トンネリングは好きなだけ繰り返すことができます。つまり、最終的には、ssh pc2
PC1 から 1 回、ssh pc1
PC2 から 1 回実行できます。すべてが機能するようにするには、少し設定するだけです。
Host aws-computer
HostName <ip-address-or-domain-name>
User name
Port 22
PasswordAuthentication no
HostbasedAuthentication no
IdentitiesOnly yes
IdentityFile /home/name/.ssh/tunnel_keys/tunnel_rsa
注: 追加のキー(通常のキー以外のキー)にはサブディレクトリを使用します。何個でも持てる。
主な制限は、異なるポートを使用する必要があることです (つまり、1 台のコンピューターで 1 つのポートを使用して 2 つのサービスを使用することはできません)。もう 1 つの制限は、コンピューターの 1 つに静的 IP アドレスがあるか、IP を記録するドメイン ネーム サーバーを利用できるようにする必要があることです。このような DNS は、他の誰かが「あなたの」古い IP を入手し、システムがサードパーティのコンピューターを介して接続しようとする可能性があるため、あまり安全ではありません。