Linuxデスクトップにリモートアクセスする必要がある場合があります。そのような場合、最も分かりやすい接続方法はVNCです。しかし、会社のネットワーク(または自宅のネットワーク)でデフォルトのVNCポート(5901)が開いていない場合はどうすればよいでしょうか?どうすれば接続できるでしょうか?
幸いなことに、Secure Shell(SSH)が頼りになります。この便利なネットワークツールを使えば、VNCをSSH経由でトンネル化できるので、VNCポートを経由せずに済むだけでなく、すべてのデータを暗号化されたトンネル経由で送信できます。
やり方は実はとても簡単です。SSHにローカルトンネルを作成し、localhostのポート5901をリモートマシンのポート5901に、デフォルトのSSHポート(22)経由でのみ転送するように指示します。もちろん、リモートマシンにポート22経由でアクセスできる必要があります。SSH経由でリモートマシンにアクセスできない場合、この方法は機能しません。
参照: 情報セキュリティポリシーテンプレートのダウンロード (TechRepublic Premium)
1ニンジャワン
企業規模
企業規模ごとの従業員数
マイクロ(0~49)、スモール(50~249)、ミディアム(250~999)、ラージ(1,000~4,999)、エンタープライズ(5,000以上)
小規模(従業員50~249名)、中規模(従業員250~999名)、大規模(従業員1,000~4,999名)、エンタープライズ(従業員5,000名以上) 小規模、中規模、大規模、エンタープライズ
特徴
監視、パッチ管理
必要なもの
必要なものはすべてすでにインストールされている可能性が高いです。このタスクには以下のものが必要です。
- ローカルマシン: SSH と VNC ビューア
- リモートマシン: Openssh サーバーと VNC サーバー (TightVNC など)
必要なものはすべてすでにインストールされており、VNC サーバーが実行中で接続を受け入れていると想定します。
トンネルを作成する
最初に行うことは、ポート 22 を介してローカルホスト (ポート 5901) からリモート ホスト (ポート 5901) にパケットをルーティングするトンネルを作成することです。これは、次の 1 つのコマンドで実行されます。
ssh -L 5901:localhost:5901 REMOTE_IP
ここで、REMOTE_IP はリモート ホストの IP アドレスです。
このリモート ホストに SSH 接続したことがない場合は、リモート ホストをローカルの~/.ssh/known_hostsファイルに追加するかどうかを尋ねられます(図 A )。
図A
yesと入力し、キーボードのEnterキーを押します。すると、リモートユーザーのパスワードの入力を求められます。これは、ローカルマシンとリモートマシンの両方で同じユーザー名を使用していることを前提としています。そうでない場合は、次のようにリモートユーザー名を追加できます。
ssh -L 5901:localhost:5901 USER@REMOTE_IP
ここで、USER はリモート ユーザー名、REMOTE_IP はリモート IP アドレスです。
注:より安全な接続のために、SSH キー認証を使用することをお勧めします。(参照: SSH キー認証の設定方法)
VNCクライアントを接続する
次に、VNCクライアントを起動します。どのクライアントを使用しても構いません。ただし、重要なのは接続に使用するアドレスです。リモートアドレスとして、例えば192.168.1.83:5901を入力する代わりに、localhost:5901と入力してください。なぜでしょうか?これは、localhost:5901からREMOTE_IP:5901(REMOTE_IPはリモートマシンのIPアドレス)へのSSHトンネルを作成したためです。「接続」をクリックすると、VNCクライアントは暗号化されたSSHトンネルを使用し、ポート5901でローカルマシンとリモートマシン間の接続を確立します。これで、SSHのおかげで、VNCを使ってリモートデスクトップで作業できるようになります。
VNC接続は問題なく動作するだけでなく、デフォルトのVNCポートを使用する場合よりも安全です。SSH経由でVNCトンネリングをお楽しみください。