web-dev-qa-db-ja.com

インターネット経由で自宅のマシンに安全にSSH接続する方法

私はまもなく旅行する予定で、実行中のマシンで多数のcronジョブなどを実行しています。実行中のジョブの結果を確認し、マシンで作業を行うには、リモートでログインする必要があります。

ここに顕著な事実があります:

  1. 接続されるマシン(マザーシップ)はUbuntu 14.0.4 LTSを実行しています
  2. マザーシップは自宅のLANを介してインターネットに接続されているため、IPアドレスが公開されています。
  3. IPアドレスは動的に割り当てられます。
  4. Ubuntu 15.10を実行しているラップトップを使用してマザーシップに接続します

帯域幅の問題があるため、VNCよりもsshを使用することを好みます-さらに、必要なのはコマンドラインだけです。

マシンにリモートで安全に接続する最良の方法は何ですか?

おそらく2020などのデフォルト以外のポートでSSHサーバーを実行することをお勧めします。これにより、これらのボットはデフォルトのポートのみを見る傾向があるため、Webからのブルートフォース攻撃のほとんどの試みを防ぎます。

また、サーバーは常にアクセス可能である必要があるため、サーバーにLAN上の静的IPアドレスを割り当てる必要があります。これはSystem Settings --> Networkで設定できます。 IPアドレスの競合を防ぐために、このIPアドレスが使用されていることをDHCPサーバー(ほとんどの場合ルーター)に伝えることもお勧めします。方法はモデルによって異なりますが、ルーター構成のどこかにIPアドレスを予約できる領域が必要です。

静的IPの理由は、ルーターのセットアップでポート転送を設定する必要があるためです。これにより、ポートから外部IPへの接続をサーバー上のそのポートにルーティングできます。

パブリックIPアドレスが動的な場合(おそらくそうです)、何らかの動的DNSサービスをセットアップする必要があります。このサービスに対する私の推奨事項は、 No-IP です。パブリックIPを常に指す無料のサブドメインを提供します。このセットアップでは、LAN上の常時接続マシン(No-IPが提供するDUCと呼ばれる)にプログラムをインストールする必要があります。

SSHサーバーの設定方法が決まったら、次のように入力してSSHサーバーにSSHします。

ssh user@remotehostip -p XXX

または、お好みのSSH/SFTPクライアントを使用してください。

これらのセクションのいずれかに詳細な手順が必要な場合は、コメントして追加します。

他の誰かがフォローに問題がある場合、ここにさらに/より詳細な手順があるチャットルームがあります。 http://chat.stackexchange.com/rooms/37251/discussion-between-homunculus-reticulli-and-zacharee1

14
TheWanderer

Zacharee1の回答に加えて、Fail2banまたはDenyHosts(Preciseリポジトリから.debを取得)をインストールする必要があります。旅行中は、キーで認証しないでください。 「安全な」パスワードも使用します。管理者である必要がない時間にアクセスを制限した専用のユーザーアカウントを設定することもできます。

サーバーのネットワーク設定には触れません。静的IPはルーターから割り当てることができます。ルーターのIPアドレスは、DHCPで割り当てられた「ゲートウェイ」アドレスである必要があります。そうでない場合(!)は、デフォルトアドレスをその下に書き込む必要があります。これを変更した場合は、最後の値をそのままにしておく必要があります。クラスCホームネットワークがある場合、アドレスはa.b.c.xになります。a.b.cは他のすべてのIPアドレスと一致し、xはルーターステッカーの末尾の値です。いずれの場合も、ISPにはそのためのヘルプページが必要です。

標準以外のポートを使用する場合、最後の桁に「22」を使用しないでください(8122など)。手がかりを残します。

NB。別のトピックであるVNCなしで、SSHを介してXベースのアプリケーションにアクセスできます。

1
mckenzm