Ubuntu18.04LTSのクラウドサーバーに、リモートデスクトップ接続する手順の紹介。
今回は、AWSで借りたクラウドサーバーにGNOMEとtigervncをインストールした。
(2020/4/30現在)
以下は、インスタンス 起動後、sshでログイン後からの手順。
使用したAmazon マシンイメージ:Deep Learning AMI (Ubuntu 18.04) Version 28.0
sudo apt update
sudo apt upgrade
sudo reboot
今回は、upgrade時に次のエラーが発生。
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
次のコマンドで、解決した。参考URL
(注: 上記エラーが出た時のみ、次のコマンドを実行する。)
sudo dpkg --configure -a
reboot後、少し待って再ログインし、次のコマンドで、GNOMEとtigervncをインストールする。
sudo apt install ubuntu-gnome-desktop
sudo apt install tigervnc-standalone-server
次のコマンドでパスワード設定のためにディスプレイを一旦作成する。
vncserver :1
ここで、パスワードの設定が求められるので設定する。
このパスワードはクライアントPCから、サーバーにリモートデスクトップ接続をする際に入力する。
次の質問は、nを入力する。
Would you like to enter a view-only password (y/n)? n
emacsを使う人は、ここでemacsをインストールする。
sudo apt install emacs
~/.vnc/xstartupを次の内容にする。(emacsを使用する場合: emacs .vnc/xstartup)
#! /bin/sh
exec gnome-session &
先ほど作ったディスプレイ:1をkillして再起動する。killしないでrebootすると、:1に正常にアクセスできない(staleになっている)。
vncserver -kill :1
sudo reboot
次にログインをする際には、sshのコマンド末尾に、次のオプションをつける。
-L 5901:localhost:5901
このオプションで、サーバーの5901番ポートと、ローカルホストの5901番ポートに接続可能となる。
VNCサーバーで:1のディスプレイを作成すると5901番を使用する。
ログイン後、次のコマンドでリモートアクセスするディスプレイを作成する。
vncserver :1
ターミナルはそのままにして、クライアントPCからサーバーへのリモートデスクトップ接続の操作を行う。ターミナルからのSSH接続でサーバーの5901番ポートとクライアントPCの5901番ポートを接続しているので、ログアウトしたり、ターミナルを終了すると、リモートデスクトップ接続はできない。
(MacOSXの場合)
・Finderを起動
・画面上端のメニュー(Finderのメニュー)から"移動"-> "サーバーへ接続"を選択する
・"サーバーへ接続"のダイアログに、vnc://localhost:5901
を入力する。
・VNC接続のパスワードを聞かれるので、上で設定したパスワードを入力すると、サーバーにリモートデスクトップ接続する。
この手順は、MacOSXの標準機能のみでリモートデスクトップ接続が可能。しかし、この方法で接続すると、クライアントPCとクリップボードを共有できなかった。VNC ViewerをMacにインストールして、localhost:5901に接続すると、クリップボードの共有は可能だった。
(Windowsの場合)
UltraVNCで接続可能だった。
以下、コマンドは、サーバー側でディスプレイの確認・削除・作成で使用するもの。
ディスプレイの確認:
vncserver -list
ディスプレイの削除:
vncserver -kill :(ディスプレイ番号)
ディスプレイの作成:
vncserver :(ディスプレイ番号)