リモートデスクトップ接続の設定2018年12月4日 | |
はじめにLinux でリモートデスクトップ接続を行うための設定について述べる。リモートデスクトップ接続を行うためにここでは xrdp を用いる。 CentOS環境CentOS 7.5 EPEL の設定xrdp をインストールするために、EPEL (Extra Packages for Enterprise Linux) リポジトリを追加する。 # yum install epel-release xrdp の設定xrdp をインストール。 # yum install xrdp xrdp サーバーの起動。 # systemctl start xrdp # systemctl enable xrdp このままでは英語キーボードになるので、日本語キーボードの設定をする。 # cd /etc/xrdp # wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini # cp km-e0010411.ini km-0411.ini # cp km-e0010411.ini km-e0200411.ini # cp km-e0010411.ini km-e0210411.ini リモートデスクトップ接続の設定リモートデスクトップ接続の設定ののために、メニュー[アプリケーション]-[諸ツール]-[ファイアウォール] で TCP の 3389 番ポートを開けておく。 接続時の認証の抑制リモート接続時に「カラープロファイルを作成するには認証が必要です」というダイアログが出てうっとうしいときは、以下のファイルを作れば抑制できる。 /etc/polkit-1/rules.d/02-allow-colord.rules polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.color-manager.create-device" || action.id == "org.freedesktop.color-manager.create-profile" || action.id == "org.freedesktop.color-manager.delete-device" || action.id == "org.freedesktop.color-manager.delete-profile" || action.id == "org.freedesktop.color-manager.modify-device" || action.id == "org.freedesktop.color-manager.modify-profile") { return polkit.Result.YES; } }); 参考 Ubuntu環境Ubuntu 16.04 LTS xrdp の設定xrdp をインストールして、サービスを開始する。 $ sudo apt-get install xrdp $ sudo service xrdp start キーボードの設定は CentOS 同様。 セッションのために LXDE を準備する。 $ sudo apt-get install lxde lxde-common $ echo lxsession -s LXDE -e LXDE > ~/.xsession リモートデスクトップ接続の設定リモートデスクトップ接続の設定ののために、以下を実行する。 $ vino-preferences 設定ウインドウが開くので、「他のユーザーが自分のデスクトップを表示できる」にチェック。「このマシンへの接続を毎回確認する」をはずす (これがチェックされているとリモート側でいちいち接続を許可する必要がある)。パスワードも設定しておいたほうがよい。 リモートデスクトップ接続Windows から Linux に接続するWindows のリモートデスクトップ接続で、"コンピューター" にサーバー名を設定し、"オプション" ボタンを押して "ユーザー名" を設定する。ログイン画面が出るので、パスワードを入れてログインすると、Linux のデスクトップが表示される。 xrdp の仕組みxrdp の仕組みは次のとおりである。
セッションのポートの確認ポートは環境変数 $DISPLAY でわかる。 $ echo $DISPLAY :13.0 上の例では、ポートは 5913 である。 既存のセッションの確認既存のセッションを確認するには、VNC のプロセスを調べる。 $ ps aux | grep vnc セッションを止めるにはプロセスを kill する。 接続の設定xrdp の接続の設定は "/etc/xrdp/xrdp.ini" にある。 /etc/xrdp/xrdp.ini [globals] ... #crypt_level=low crypt_level=high ... [xrdp1] name=sesman-Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 [xrdp2] name=console lib=libvnc.so ip=127.0.0.1 port=5900 username=na password=ask [xrdp3] name=vnc-any lib=libvnc.so #ip=ask ip=127.0.0.1 port=ask5900 username=na password=ask ... これは Ubuntu の設定を元にしている。[globals] は全体の設定である。crypt_level=highで暗号化のレベルを上げている。 [xrdp1]、[xrdp2] ... は接続の種類である。リモートデスクトップ接続時に name で指定した名前で選択できる。[xrd1] "sesman-Xvnc" ではユーザー名とパスワードを問い合わせるようにしている。port=-1 なので新規にセッションが作成される。[xrdp2] "console" は port=5900 なのでローカルのデスクトップに接続しようとする。[xrdp3] "vnc-any" はポートを指定できるようになっている。これは既存のセッションに接続するためのものである。 接続できない場合CentOSxrdp.ini で security_layer を以下のように変更する必要があった。 #security_layer=negotiate security_layer=rdp Ubuntu上記設定の "console" で接続しようとしたとき、以下のようなメッセージが出で接続できないことがあった。 started connecting connecting to 127.0.0.1 5900 tcp connected security level is 0 (1 = none, 2 = standard) error - problem connecting "security level" の数字がおかしい。 以下のコマンドを実行して、再起動したら接続できるようになった。 $ gsettings set org.gnome.Vino require-encryption false 参考: 0 security level with xrdp and vino (Ubuntu Forums) 上記コマンドで以下のようなエラーが出ることがある。 GLib-GIO-Message: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications. その場合は、以下のように環境変数を設定してから実行する。 $ export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/ おまけLinux から Windows に接続するLinux から Windows にリモートデスクトップ接続する場合、rdesktop というコマンドを用いる。Windwos の設定で「リモート デスクトップを実行しているコンピューターからの接続を許可する」を選択しておく必要がある (「ネットワーク レベル認証」では接続できない)。 $ rdesktop -f <マシン名> オプション "-f" はフルスクリーンの指定。フルスクリーンモードとウインドウモードの切り替えは Ctrl+Alt+Enter で行う。 壁紙を表示したい場合はオプション "-xl" をつける (帯域は LAN ですよという意味)。 参考 | |
PENGUINITIS |