私は Windows 7 マシンと Linux マシンを持っています。Windows から Linux に SSH 接続したいのですが、両方とも自宅のルーターに接続されている場合、どのように設定すればよいでしょうか。Linux マシンを自宅に置いて、Windows マシンをスターバックスに持っていく場合、何か変更が必要ですか。
これまで、両方のマシンに putty をインストールし、ファイアウォールを無効にしました。
Ubuntuの場合:sudo ufw disable
Windows: Windowsファイアウォールを無効にする
Putty: UbuntuマシンのIP(ローカルIPと外部IPの両方)を入力しました
「接続」をクリックすると、接続拒否メッセージが表示されます。
答え1
まず、両方のマシンが同じサブネット (例: 192.168.1.x) 上にある必要があります。最初のテストとして、Windows ( ping -t <Linux IP>
) から Linux マシンに ping を実行して、応答が返されるかどうかを確認します。応答が返されない場合は、SSH を使用できないため、ネットワークを再設定する必要があります。
次に、LinuxマシンにSSHサーバーをインストールする必要があります。Ubuntuを使用している場合は、このガイドOpenSSH のインストール方法について。
SSH サーバーはバックグラウンドで実行されるように設定されるため、Linux ファイアウォールをオンに戻して、SSH サーバーがリッスンしているポート (通常は TCP ポート 22) を開くことをお勧めします。これを行うには、次の操作を実行します。
sudo ufw allow ssh
セットアップが完了し、Windows から Linux マシンに ping を実行できるようになると、Putty またはその他の Windows SSH クライアントを使用して Linux マシンに接続できるようになります。Linux の IP とポートを入力するだけで、準備完了です。
さて、自宅のネットワーク外から接続したい場合は、おそらく設定が必要になります。ポート転送ルーター用です。これはメーカーによって大きく異なりますが、基本的には SSH ポートの WAN IP を LAN IP にマッピングすることになります。Google で検索する<router name and model> port forwarding
と、結果がいくつか表示されます。
ただし、ポート転送は方程式の半分にすぎません。自宅のインターネット接続には静的なパブリック IP がない可能性があります。これは、ルーターの電源を入れ直すか、ISP が IP の変更を強制するたびに変更されます。パブリック IP アドレスが変更されるたびにそれを覚えておく必要がないようにするには、動的 DNS サービスを設定できます。つまり、IP の代わりにドメイン名 (例: ssh.myhost.com) を入力できます。
無料のダイナミックDNSサービスは数多くあります。IPなし、無料DNSなどです。通常は Linux マシンでクライアントを実行し、パブリック IP が変更されるたびに DNS レコードを更新する必要があります。ほとんどのルーターにはこの機能が組み込まれていますが、ルーターの管理ページを確認してください。
答え2
ルーターでポート転送を設定する必要があります。これが完了すると、Putty でパブリック IP アドレスを使用できるようになり、ルーターがトラフィックを認識して Ubuntu ボックスに転送します。覗き見を防ぐために、SSH に強力なパスワードを設定してください。
良いリソース:http://portforward.com/- ポート転送についてはルーター固有の指示があります。