web-dev-qa-db-ja.com

ホームネットワークの外部からSSH Linuxサーバーにアクセスする方法

だから私はこれを理解しようとして何日もインターネットを精査してきましたが、それを理解することはできません。

私はそれが簡単になることを知っています。

だから私は最近、古いデスクトップを取り、その上にubuntuサーバー12.04をロードしました。このプロジェクトの私の目標は、いくつかのgitリポジトリをホストする領域と、おそらく簡単なWebページを作成することです。

SSHパッケージとApache2パッケージの両方をインストールし、それらを構成しようとしました。現在、ssh [email protected]を使用してラップトップからログインできますが、同じネットワークにいる間だけです。家を出ると、タイムアウトエラーが発生します。

それで、私が今手に入れたい2つのこと。

  1. ネットワークの外部からサーバーにアクセスできるようにSSHを構成する方法。
  2. ログインが[email protected]ではなくgreg @ hostnameになるように、サーバー上のホスト名を取得します

    (Sudoホスト名を実行し、etc/hostnameファイルを変更しましたが、結果はありません)

みんなありがとう。

25
Greg

指定したIPが外部ネットワーク上の他の場所にルーティングされるため、ホームネットワークの外部でタイムアウトが発生します。

他の人が示したように、ルーター(外部インターフェイス)でSSHサーバーへのポート転送を構成する必要があります。標準ポート(22)または代替ポート(1024を超えるもの)を使用できます。 Webサーバーの場合、外部インターフェイスのポート80からサーバーへのポート転送を設定する必要があります。SSL/ TLS接続を含める場合は、ポート443を設定する必要があります。

また、SSH構成ファイル(〜/ .ssh/config)を使用して、内部接続または外部接続を行うときに簡単にすることをお勧めします。次のようなものを追加します。

Host serverext
Hostname 1.2.3.4
User greg
Port 22

Host serverint
Hostname 192.168.1.10
User greg
Port 22

Serverext構成のホスト名をインターネット接続のIPアドレスに変更します。外部SSH接続に非標準ポートを使用している場合、serverextのポートフィールドをそれに合わせて変更します。

Serverint構成のホスト名を、ネットワーク上のそのサーバーの内部IPアドレスに変更します。

これが設定されると、ポート転送とともに、「ssh serverint」を使用して自宅にいるときにサーバーに接続し、「ssh serverext」を使用して他の場所にあるときに接続できます。

ポートトンネリングやWebソケット接続など、SSH構成ファイルを介して高度な構成オプションを含めることができます。過去に私はそのようなことをして、SOCKSプロキシサーバーを介してSSH接続をリダイレクトしました。 Torで実行することもありましたが、非常に遅いです。

10
Ben