Ubuntuの下にアクティブなSSHサーバーがあり、同じルーターの背後にPC1とPC2があります。明確にするために別のbashプロンプトを使用します。ローカル IP を使用して PC1 から PC2 に SSH を接続できます。
[user@PC1]$ ssh [email protected]
/user@PC2/$ logout
Connection to PC2 closed.
[user@PC1]$ ssh [email protected]
/user@PC2/$ logout
Connection to PC2 closed.
[user@PC1]$ dig +short myip.opendns.com @resolver1.opendns.com
<External IP>
[user@PC1]$ ssh [email protected]
/user@PC2/$ dig +short myip.opendns.com @resolver1.opendns.com
<External IP>
外部IPを使用してSSHを接続する方法(どちらも同じですか?)
[user@PC1]$ ssh user@<External IP> ... etc?
PC1とPC2が異なるルータの背後にある場合、プロセスは異なりますか?
私は2台のPCを持っていて、私がいないときに将来のためにPC2を準備したので、これを行う方法を学ぶ予定です。
答え1
外部IPを使用してSSHを接続する方法(どちらも同じですか?)
あなたはできません。一つあなたが言ったように、外部IPは一つポート 22. ルータは、ユーザがどのコンピュータを参照しているかを知ることができません。
次の2つのことができます。
- 2つの異なる外部ポートをPC1:22およびPC2:22に転送します(たとえば、ポート2211および2222)。
- ルーターにSSHサーバーを設定し、それを「ジャンプホスト」として使用します(
-J
オプションを参照)。man ssh
ssh -J externalIP [email protected]
PC1とPC2が異なるルータの背後にある場合、プロセスは異なりますか?
はい、パブリックIPが異なるためです。
答え2
受け取ったコメントとこのガイドラインのさらなる研究のおかげで、私は次の結論に達しました。
外部IPを使用してSSHを接続する方法(両方とも同じ)?
これにはいくつかのステップが含まれ、一部は必須であり、一部は便利です。
必須。構成フォワードポートルータから。次のパラメータを使用してポート転送サービスを追加します(ルーターによって異なります)。
- カスタム名: たとえば、SSHポート23
- サービスの種類:TCP/UDP(通常はメニューから選択)
- 内部ポート:PC2(受信接続)のポート番号(例:22(デフォルト))。
- 開始/終了ポート
ssh
:PC(クライアント)でコマンドに使用されるポート番号。これまでは、両方とも同じ値(例:23)しか正常に使用できませんでした。 - サーバーIPv4:PC2のローカルIP、例えば
192.168.0.30
。
必須。次のいずれかの方法で接続します。
[user@PC1]$ ssh user@<External IP> -p 23 [user@PC1]$ ssh ssh://user@<External IP>:23
任意に選択できる。知る必要がないように動的DNSを設定してください
<External IP>
。任意に選択できる。ポート転送サービスが宛先を見逃さないように、PC2 に固定 IP を設定します。
メモ:
いつものように他の設定をすることができます。内部ポート(例:PC2の5901)
/etc/ssh/sshd_config
などufw
を確認してください。セキュリティ対策の追加考えてみましょう。/etc/ssh/sshd_config
編集にはデフォルトのPort 5901
commentedの代わりにlineを使用してください#Port 5901
。- ファイアウォールルールを設定します
$ sudo ufw allow 5901/tcp
。 - 再起動
$ sudo service ssh restart
。 - 変化内部ポートルータからのポート転送。
設定を指定すると、同じルータの背後にある複数のPCにSSHで接続できます。フォワードポート提供する。
PC1とPC2が異なるルータの背後にある場合、プロセスは異なりますか?
まだ試していませんが、まったく同じものだと思います。を使用するとき、[user@PC1]$ ssh user@<External IP> -p 23
私のルータは、実際にはインターネットに接続されたPC1からSSHを送信していることを実際には知りません(または気にしません)。