MacからCentOS7にリモートデスクトップ接続する

 # MacからCentOS7にリモートデスクトップで接続してみます
検証するためにCentOS7をインストールしたPCとMacを使っていますが、どうせなら1つのディスプレイ、1つのキーボードで使った方が楽なので、リモートデスクトップで接続することにしました。

CentOS7側のインストールと設定

MacからCentOS7にリモートデスクトップするには、CentOS7側に必要なパッケージのインストールと設定を行いまます。

CentOSデスクトップでの設定変更

  1. アプリケーション>システムツール>設定をクリック
  2. 共有>画面共有をON
  3. 画面共有ダイアログが開くので、このスクリーンの操作する接続を許可するにチェックが入っていることを確認
  4. アクセスオプションをパスワードを要求するをチェックする
  5. パスワードを設定する
  6. 閉じる
  7. リモートログインがONになっていることを確認する
  8. 設定ダイアログを閉じる

tigervnc-serverのインストール

ここではtigervnc-serverをインストールします。

# yum install tigervnc-server
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ tigervnc-server.x86_64 0:1.8.0-5.el7 を 
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                      アーキテクチャー    バージョン                リポジトリー       容量
====================================================================================================
インストール中:
 tigervnc-server              x86_64              1.8.0-5.el7               base              214 k

トランザクションの要約
====================================================================================================
  1 パッケージ

総ダウンロード容量: 214 k
インストール容量: 508 k
Is this ok [y/d/N]: y
Downloading packages:
tigervnc-server-1.8.0-5.el7.x86_64.rpm                                       | 214 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : tigervnc-server-1.8.0-5.el7.x86_64                                  1/1 
  検証中                  : tigervnc-server-1.8.0-5.el7.x86_64                                  1/1 

:
  tigervnc-server.x86_64 0:1.8.0-5.el7                                                              

完了しました!

vncパスワードを設定

vnc接続時のパスワードを設定します。設定するユーザでログインします。

$ vncpasswd
Password: 
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
$

systemctlにserviceを登録

サーバを再起動しても動作しているように設定します。
ここで設定するのはディスプレイ2に接続するサービスなのでvncserver@:2.serviceとしています。別のディスプレイの場合は数字の箇所を整数で変更します。

# cd /lib/systemd/system/
# cp vncserver@.service vncserver@:2.service 
# ls -l vncserver*
-rw-r--r--. 1 root root 1828  4月 11 15:07 vncserver@.service
-rw-r--r--. 1 root root 1828  9月 22 18:50 vncserver@:2.service

変更

# vi vncserver@:2.service

変更箇所 user1にする場合

ExecStart=/usr/sbin/runuser -l  -c "/usr/bin/vncserver %i"
PIDFile=/home//.vnc/%H%i.pid

ExecStart=/usr/sbin/runuser -l user1 -c "/usr/bin/vncserver %i"
PIDFile=/home/user1/.vnc/%H%i.pid

systemctlにserviceを開始

# systemctl daemon-reload
# systemctl start vncserver@:2.service
# systemctl status vncserver@:2.service
● vncserver@:2.service - Remote desktop service (VNC)
   Loaded: loaded (/usr/lib/systemd/system/vncserver@:2.service; disabled; vendor preset: disabled)
   Active: active (running) since 土 2018-09-22 18:55:01 JST; 13s ago
  Process: 12827 ExecStart=/usr/sbin/runuser -l root -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
  Process: 12820 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 12859 (Xvnc)
   CGroup: /system.slice/system-vncserver.slice/vncserver@:2.service
           ‣ 12859 /usr/bin/Xvnc :2 -auth /root/.Xauthority -desktop vaio-centos7-100:2 (root) -f...

 9月 22 18:54:57 vaio-centos7-100 systemd[1]: Starting Remote desktop service (VNC)...
 9月 22 18:55:01 vaio-centos7-100 systemd[1]: Started Remote desktop service (VNC).

# systemctl enable vncserver@:2.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver@:2.service to /usr/lib/systemd/system/vncserver@:2.service.
# systemctl status vncserver@:2.service
● vncserver@:2.service - Remote desktop service (VNC)
   Loaded: loaded (/usr/lib/systemd/system/vncserver@:2.service; enabled; vendor preset: disabled)
   Active: active (running) since 土 2018-09-22 18:55:01 JST; 3min 42s ago
 Main PID: 12859 (Xvnc)
   CGroup: /system.slice/system-vncserver.slice/vncserver@:2.service
           ‣ 12859 /usr/bin/Xvnc :2 -auth /root/.Xauthority -desktop vaio-centos7-100:2 (root) -f...

firewallの設定

CentOS7ではfirewallが実行されていますので、firewallでvncserverを通すように設定します。

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp4s0
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
    
# firewall-cmd --zone=public --add-servie=vnc-server --permanent
usage: see firewall-cmd man page
firewall-cmd: error: unrecognized arguments: --add-servie=vnc-server
# firewall-cmd --zone=public --add-service=vnc-server --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp4s0
  sources: 
  services: ssh dhcpv6-client vnc-server
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Macからリモートデスクトップを開く

Macからリモートデスクトップで接続します

  1. [command]+[K]を押します
  2. 接続先を入力して[接続]ボタンをクリックします
    例はディスプレイ2に接続するので:5902を入れています
  3. Mac リモートデスクトップ

  4. パスワードを入力して[接続]ボタンをクリックします
  5. Mac リモートデスクトップ

  6. リモートデスクトップが開きます
  7. Mac リモートデスクトップ

リモートデスクトップの解像度を変更

# vi /usr/bin/vncserver

次の箇所を探します(赤字箇所)

 # Global variables.  You may want to configure some of these for
# your site
#

環境に合わせて変更します

$geometry = "1024x768";
#$depth = 16;

Global variables. You may want to configure some of these for

your site

#

$geometry = “1280×1024”;
#$depth = 16;

サービスを再起動します。

# systemctl restart vncserver@:2.service

微妙ですが解像度が変化しているのがわかりますでしょうか?
Mac リモートデスクトップ