読者です 読者をやめる 読者になる 読者になる

Goldstine研究所

mosuke5's tech blog

ブログ移転しました。5秒後にリダイレクトします。

デスクトップUbuntuにVNC接続。ついでにSSHローカルポートフォワードの復習。

完全に自分のための備忘録。内容はわりと薄め。

やったこと

最近、自作したPCにUbuntuをいれて使っているのだけど、
デスクトップPCなので、部屋でしか操作することができません。

他の部屋からノートPCでUbuntuを触れたらいいなーと思いその環境を整えることをしました。

主にやったことは以下の通りです。

  • VNCサーバ構築について
  • ノートPC(Mac)からのVNC接続について
  • SSHローカルポートフォワードを使ってのセキュアな接続について

UbuntuでのVNCサーバ構築について

今回利用しているUbuntuは「Ubuntu Desktop 14.04」です。
また、VNCの実現は標準でインストールされているvinoを使って行いました。

ご存知の方も多くいるかもしれませんが、vinoでのVNCは簡易的なもので、サーバ側のユーザがログアウトしていると使えません。
ですので、会社などでの利用には耐えないと思います。
ユーザーをログアウトせずにロック状態にしていれば使えます。

まずはデスクトップ共有の設定をします。
「デスクトップの共有」のアプリケーションを起動します。 f:id:mosuke5:20150809132410p:plain

接続毎に要求するようにすると、サーバ側で毎度許可が必要なので、オフにします。
パスワードの設定はしておきましょう。
同じLANをつかんでる人に簡単に奪われてしまいますので。

f:id:mosuke5:20150809132421p:plain

ちょっと詳細な意味を把握していないのですが、
下記を実行しないとMacで接続すると「互換性のないバージョンです」的なこといわれました…すいません。

$ gsettings set org.gnome.Vino require-encryption false

設定ができたら、きちんとサーバとしてVNC接続を待ち受けているか確認します。

% sudo lsof -i:5900
COMMAND     PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
vino-serv 24414 mosuke5   13u  IPv6 156661      0t0  TCP *:5900 (LISTEN)
vino-serv 24414 mosuke5   14u  IPv4 156662      0t0  TCP *:5900 (LISTEN)

% ps -ef | grep vino
mosuke5  24414 24226  0 12:30 ?        00:00:21 /usr/lib/vino/vino-server --sm-disable
mosuke5  25456 24470  0 13:19 pts/11   00:00:00 grep vino

MacからVNC接続する

これをやるまで知らなかったのですが、Macには標準でVNCクライアントがついています。
vncプロトコルで対象のサーバのIPアドレスを入れれば接続できます。 f:id:mosuke5:20150812225515p:plain f:id:mosuke5:20150812225126p:plain

SSHローカルフォワードを使ってセキュアな通信をする

VNCプロトコルは通信の内容を暗号化しません。telnetと同様で、非常に危険です。
家のLAN内で利用するので、正直ここまでする必要は全くないのだが、
より応用的な使い方に備えてと、復習を兼ねてSSHのローカルフォワードを利用してセキュアにVNCを使ってみます。

復習と書いたのは以前に、SSHのローカルフォワードについてはまとめたからです。 mosuke5.hateblo.jp

まずは、ローカルフォワードのSSH接続。
意味は「自分の端末のポート8888に来た通信は、192.168.11.5からみてlocalhostのポート5900にとばします」です。

$ ssh -L8888:localhost:5900 mosuke5@192.168.11.5

上のコマンドでSSH接続した状態でなら、localhostのポート8888が利用できます。 f:id:mosuke5:20150812224539p:plain

これでセキュアなVNCの完成。