とらりもんHOME  Index  Search  Changes  Login

とらりもん - VNC Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

2010/05/25 HM; 2012/08/09 奈佐原; 2018/11/02 奈佐原

!VNCでパソコンを遠隔操作する
VNCの通信は、通常暗号化されないのでセキュリティの面で危険である。

なのでsshポートフォアーディングという方法を用いたVNCが一般的。

この場合、データのやりとりはssh通信で行われるため安全である。

以下にsshポートフォアーディングを用いたVNCのやり方を示す。

VNCを行うには、サーバ側とクライアント側で設定を行う必要がある。


!!!サーバ側の設定

遠隔操作したいサーバにsshで入ってvncserverをインストールする。
$ ssh [ユーザー名]@[サーバのドメインまたはIPアドレス]
$ sudo apt-get install (tightvncserver もしくは vnc4server )
※tomokoには、既にtightvncserverがダウンロードされている。

VNCサーバを起動する。
$ vncserver
このとき、ポート番号の下一桁が割り振られるのでメモ。
例えば、
New 'pen:3(hadano)' desktop is pen:3
と表示された時、割り振られたポート番号は5903になる (vncのポート番号は5900番台からと決まっている)。

VNCでGUI(グラフィカルユーザーインターフェイス)を使いたいときは、以下の設定を行う。
/home/username/.vnc/xstartupの最終行に,
exec gnome-session &
を追記する。

また, 以下の二つの#を消せばOKという説もある...
# unset SESSION_MANAGER
# exec /etc/x11/xinit/xinitrc
.
.
.

設定を反映させるには、一度vncを停止させ、再起動する。
$vncserver -kill :[ポート番号下一桁]
$vncserver

これでサーバー側の設定は完了。sshを終了し, サーバから出て構わない。


!!!クライアント側
まず、vncviewerをインストールする。
$ sudo apt-get install xvnc4viewer


sshポートフォワードを行い, sshのトンネルを作る。
※590?の"?"は、vncserverを起動した時の数字に合わせる。
$ ssh -L 5555:[127.0.0.1]:[590?] [ユーザー名]@[サーバのドメインまたはIPアドレス]
例)
$ ssh -L 5555:127.0.0.1:5903 hadano@pen.agbi.tsukuba.ac.jpusername@xxx.tsukuba.ac.jp

もうひとつ端末を立ち上げて、vncviewerを起動する。
$ vncviewer
接続先とpasswdを入力する。
接続先 : localhost:5555
passwd : 自分のpasswd

これで出来るはず。

!複数のVNCサーバーマシンに一気にアクセス!
事前準備(1回やればOK)
* SSHの踏み台のマシンとの鍵交換
* VNCパスワードの暗号化・ファイル化
** $ vncpasswd ~/.vnc/passwd1
** $ vncpasswd ~/.vnc/passwd2
** などで, アクセス先のサーバーごとのパスワードを暗号化ファイルにしておく。
その上で, 以下のようなスクリプトを走らせればOK。
#!/bin/bash
ssh -fNT -L 5555:192.168.0.1:5900 username@123.45.67.8
ssh -fNT -L 5556:192.168.0.2:5900 username@123.45.67.9
ssh -fNT -L 5557:192.168.0.3:5900 username@123.45.68.0

vncviewer localhost:5555 -passwd ~/.vnc/passwd1 &
vncviewer localhost:5556 -passwd ~/.vnc/passwd2 &
vncviewer localhost:5557 -passwd ~/.vnc/passwd

ps aux | grep "ssh -fNT -L" | grep -v grep | awk '{print "kill "$2}' | sh



!画面の大きさ(解像度)を変更する:

sudo vi /usr/bin/vncserver

$geometry = "1024x768";
の部分を,
$geometry = "1500x900";
などとする。