さくらVPSのMintにリモートデスクトップで接続
さくらVPSにLinux Mint 14 Nadia (64bit) をインストール - 適当な事を適当にかいていくブログからの続き。
さくらVPSのMintにリモートデスクトップで接続できるようにする。
Mintをリモートデスクトップで繋ぐには
- vinoを使う
- vncserverを使う
の二通りがある。今回はvncserverを使用した。
VNCサーバーのインストールと起動
まず、VNCサーバーをインストール
$ sudo apt-get install vnc4server
VNCサーバーを起動
$ vncserver
パスワードを聞かれるので、パスワードを入力。
これで、Macなら⌘+Kで、
vnc://hostipaddress:5901
で接続できる。
ただし、このまま接続すると、暗号化されていないため、パスワードなどがダダ漏れになる。
sshポートフォワーディング
暗号化通信を行うため、sshポートフォワーディングを行う。
ssh -L 10022:hostipaddress:5901 -p 10022 hoge@hostipaddress
その後、
vnc://localhost:10022
に接続する。
これで、セキュアな通信が可能となる。
ちなみに、sshで -p 10022 オプションつけているのは、10022以外のポートではssh通信できないようにしているため。
標準(ポート:22)なら -p はつけなくて良い。
また、sshd_config に Port 5901 を追記することを忘れずに。
/etc/sysconfig/vncservers の設定
このまま繋いでも、真っ黒な画面が表示されるだけだと思う。これはxfceが起動していないから。
そこで、~/.vnc/xstartup に下記を追記する。
exec /bin/sh /etc/xdg/xfce4/xinitrc &
また、複数ユーザーを指定したい場合は、
mkdir -p /etc/sysconfig/ sudo vi /etc/sysconfig/vncservers
で、vncservers ファイルを作成し、
VNCSERVERS="1:user1 2:user2 3:user3" VNCSERVERARGS[1]="-geometry 1280x992 -depth 16" VNCSERVERARGS[2]="-geometry 1280x992 -depth 16" VNCSERVERARGS[3]="-geometry 1280x992 -depth 16"
を記述する。 -geometryが解像度で、depthがビットカラー。なぜかビットカラーが32では黒い画面のままだった。
サービスの登録を行う。
/etc/init.d/vncserver を作成し、以下のように編集する。
#!/bin/bash # # chkconfig: - 91 35 # description: Starts and stops vncserver. \ # used to provide remote X administration services. # Source function library. # . /etc/init.d/functions # Source networking configuration. # . /etc/sysconfig/network # Check that networking is up. # [ ${NETWORKING} = "no" ] && exit 0 unset VNCSERVERARGS VNCSERVERS="" [ -f /etc/sysconfig/vncservers ] && . /etc/sysconfig/vncservers prog=$"VNC server" start() { REQ_USER=$2 echo -n $"Starting $prog: " ulimit -S -c 0 >/dev/null 2>&1 RETVAL=0 for display in ${VNCSERVERS} do export USER="${display##*:}" if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then echo -n "${display} " unset BASH_ENV ENV DISP="${display%%:*}" export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}" su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}" fi done } stop() { REQ_USER=$2 echo -n $"Shutting down $prog: " for display in ${VNCSERVERS} do export USER="${display##*:}" if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then echo -n "${display} " unset BASH_ENV ENV export USER="${display##*:}" su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1 fi done "\n" echo "Vncserver Stopped" } # See how we were called. case "$1" in start) start $@ ;; stop) stop $@ ;; restart|reload) stop $@ sleep 3 start $@ ;; condrestart) if [ -f /var/lock/subsys/vncserver ]; then stop $@ sleep 3 start $@ fi ;; status) status Xvnc ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" exit 1 esac
パーミッションを変更。
$ sudo chmod a+x /etc/init.d/vncserver