0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

windows からubuntu に繋ぐ

0
Posted at

はじめに

Ubuntu 26.04のWayland環境に、Windowsからリモートデスクトップ接続する方法を紹介します。

今回は、WindowsとUbuntuが同じローカルネットワーク(LAN)に接続されている環境を想定しています。

目標は、Ubuntuにログインしていない状態でも、WindowsからUbuntuのログイン画面に接続して、デスクトップを操作できるようにすることです。

設定中に発生した認証エラーと、その解決方法についても紹介します。

1. 使用環境

項目 環境
接続元 Windows
接続先 Ubuntu 26.04
ディスプレイサーバー Wayland
デスクトップ環境 GNOME
接続方式 RDP
RDPクライアント mstsc
ネットワーク 同一LAN内

この記事では、次のサンプルIPアドレスを使用します。

機器 IPアドレス
Ubuntu 192.168.1.100
Windows 192.168.1.101

これらは説明用のIPアドレスです。実際に使用する際は、自分のネットワーク環境に合わせて変更してください。

2. Ubuntuのリモートログインを有効にする

Ubuntuには、GNOME Remote Desktopというリモートデスクトップ機能があります。

大きく分けて、次の2種類があります。

デスクトップ共有

Ubuntuにログイン済みのデスクトップを、別のPCから操作する機能です。

リモートログイン

Ubuntuにログインしていない状態でも、別のPCからログインして操作する機能です。

今回はログイン画面から接続したいため、リモートログインを使用します。

Ubuntuで次の設定画面を開きます。

設定 → システム → リモートデスクトップ → リモートログイン

「ロック解除」を押して管理者認証を行い、リモートログインを有効にします。

接続用のユーザー名とパスワードを設定しておきます。

この認証情報は、普段Ubuntuにログインするときのものとは別です。

3. UbuntuのIPアドレスを確認する

Ubuntuのターミナルで、次のコマンドを実行します。

hostname -I

今回は、UbuntuのIPアドレスを次のように仮定します。

192.168.1.100

複数のIPアドレスが表示される場合は、Windowsと同じLANに属するアドレスを使用します。

IPアドレスは固定した方がいい?

IPアドレスが変わってしまうと、Windowsから接続できなくなる場合があります。

そのため、継続して使用するのであれば、IPアドレスを固定しておくと便利です。

固定する方法には、主に次の2つがあります。

  • ルーター側でDHCP予約を設定する
  • Ubuntu側で固定IPアドレスを設定する

個人的には、ルーター側でDHCP予約を設定する方法が管理しやすいと思います。

なお、サンプルIPアドレスをそのまま設定するのではなく、ルーターのDHCP設定や、ほかの機器との重複がないことを確認してください。

4. Windowsからリモートデスクトップ接続する

Windowsで「Win + R」を押します。

「ファイル名を指定して実行」が表示されたら、次のコマンドを入力します。

mstsc

mstscは、Microsoft Terminal Services Clientの略です。

Windowsに標準搭載されているリモートデスクトップ接続プログラムを起動できます。

接続先には、UbuntuのIPアドレスを入力します。

192.168.1.100:3389

3389は、RDPで標準的に使用されるポート番号です。

Ubuntuのリモートログインで設定したユーザー名とパスワードを入力します。

認証に成功すると、Ubuntuのログイン画面が表示されます。

その画面では、普段使用しているUbuntuのユーザー名とパスワードを入力します。

つまり、認証は2段階です。

  1. WindowsからのRDP接続認証
  2. Ubuntuへのユーザーログイン認証

5. 認証エラーが発生した

実際に設定してみると、Windows側でログインに失敗する問題が発生しました。

WindowsからUbuntuには接続できているようでしたが、認証に失敗してログイン画面まで進めません。

そこで、Ubuntu側のRDPサービスの状態を確認してみました。

RDPサービスの確認

Ubuntuのターミナルで実行します。

sudo grdctl --system status

実際の診断では、主に次の情報が表示されました。

Overall:
    Unit status: active

RDP:
    Status: enabled
    Port: 3389
    Authentication methods: credentials

この結果から、RDPサービスは起動しており、リモートログインも有効になっていることが分かります。

また、RDPの待ち受けポートは3389番でした。

エラーログを確認する

続いて、次のコマンドでサービスのログを確認しました。

sudo journalctl -u gnome-remote-desktop.service -n 50 --no-pager

すると、次のエラーが繰り返し表示されていました。

Could not find user in SAM database

SEC_E_NO_CREDENTIALS

client authentication failure

このエラーは、RDPの認証処理で、指定されたユーザーに対応する認証情報を見つけられず、認証に失敗していることを示しています。

推測ですが、Windowsから送信されたユーザー名と、Ubuntu側に登録されていたRDP接続用のユーザー名が一致していなかった可能性があります。

なお、ログには次の警告も表示されていました。

Init TPM credentials failed
using GKeyFile as fallback

これはTPMを利用した認証情報の初期化に失敗し、代替の保存方式に切り替わったことを示しています。

この警告だけで、今回の認証失敗の原因がTPMにあるとは判断できません。

6. RDPの認証情報を再設定する

まず、Ubuntu側のRDP接続用ユーザー名とパスワードを再設定しました。

Ubuntuのターミナルで、次のコマンドを実行します。

sudo grdctl --system rdp set-credentials

ユーザー名とパスワードの入力を求められるので、新しい認証情報を設定します。

今回は、普段のUbuntuユーザーと区別するため、RDP専用のユーザー名を設定しました。

RDPユーザー名:rdpuser
RDPパスワード:新しく設定したパスワード

パスワードは推測されにくいものを設定してください。

設定が完了したら、RDPサービスを再起動します。

sudo systemctl restart gnome-remote-desktop.service

これで、Ubuntu側のRDP認証情報を再設定できました。

7. Windowsに保存された認証情報を削除する

Windowsが古い認証情報を保存している可能性もあるため、保存済みの認証情報を削除します。

WindowsのPowerShellを開き、次のコマンドを実行します。

cmdkey /delete:TERMSRV/192.168.1.100

保存された認証情報が存在しない場合は、削除対象が見つからないというメッセージが表示されます。

その場合は、そのまま次に進みます。

続いて、もう一度リモートデスクトップ接続を起動します。

mstsc /v:192.168.1.100:3389

Windowsの認証画面で「別のアカウントを使用する」を選択します。

ユーザー名には、先ほどUbuntuで設定したRDP用のユーザー名を入力します。

rdpuser

パスワードには、新しく設定したRDP用パスワードを入力します。

この時点では、普段のUbuntuログイン用パスワードを入力しないように注意します。

8. Ubuntuのログイン画面が表示された!

認証情報の再設定と、Windows側の保存済み認証情報の削除を行った結果、Ubuntuのログイン画面が表示されました。

これで、WindowsからUbuntuへのRDP接続認証に成功しました。

今回の問題は、RDPの認証情報に関連していた可能性が高いと考えられます。

ただし、Ubuntu側の認証情報の再設定と、Windows側の保存済み認証情報の削除を両方実施したため、どちらが直接の解決要因だったかまでは特定できません。

少なくとも、今回の問題を解決するためにRDPサーバーを再インストールする必要はありませんでした。

9. WindowsからUbuntuにログインする

RDP接続認証に成功すると、Ubuntuのログイン画面が表示されます。

そこで、普段Ubuntuにログインするときのユーザー名とパスワードを入力します。

RDP接続用の認証情報とは別なので、注意してください。

Ubuntuのデスクトップが表示されれば、Windowsからマウスやキーボードで操作できるようになります。

10. Ubuntuを再起動して接続を確認する

継続して利用する場合は、Ubuntuを再起動した後もリモートログインができるか確認しておきます。

Ubuntuのターミナルで実行します。

sudo reboot

再起動後は、Ubuntu本体ではログインせず、Windowsから接続します。

mstsc /v:192.168.1.100:3389

再起動後もUbuntuのログイン画面が表示されれば、ログイン前から接続できることを確認できます。

※ 今回の作業では、RDP認証に成功してUbuntuのログイン画面が表示されるところまで確認しました。再起動後の接続については、まだ確認していません。

11. 接続できないときの確認コマンド

今後、接続できなくなったときのために、確認用のコマンドをまとめておきます。

UbuntuのIPアドレス

hostname -I

RDPの設定状態

sudo grdctl --system status

RDPサービスの状態

sudo systemctl status gnome-remote-desktop.service

RDPの待ち受けポート

sudo ss -lntp | grep ':3389'

RDPのエラーログ

sudo journalctl -u gnome-remote-desktop.service -n 50 --no-pager

Windowsからポートの疎通確認

WindowsのPowerShellで実行します。

Test-NetConnection 192.168.1.100 -Port 3389

次のように表示されれば、WindowsからUbuntuの3389番ポートまでTCP通信が到達しています。

TcpTestSucceeded : True

ただし、TCP通信が成功していても、RDPの認証が成功するとは限りません。

ファイアウォールの確認

UbuntuでUFWを使用している場合は、状態を確認します。

sudo ufw status

UFWが有効で、WindowsからのRDP接続が許可されていない場合は、WindowsのIPアドレスを指定して許可します。

sudo ufw allow from 192.168.1.101 to any port 3389 proto tcp

これで、指定したWindowsからUbuntuの3389番ポートへの通信を許可できます。

まとめ

Ubuntu 26.04のWayland環境でも、GNOME Remote Desktopを使えば、Windowsからリモートデスクトップ接続できます。

今回のポイントは次のとおりです。

  • ログイン前から接続する場合は「リモートログイン」を使用する
  • Windows標準のmstscから接続できる
  • RDP接続用とUbuntuログイン用の認証情報は別々
  • 認証エラーが出た場合はgrdctlとjournalctlで確認する
  • 今回は認証情報の再設定とWindows側の保存情報の削除で解決した
  • UbuntuのIPアドレスを固定しておくと継続利用しやすい

最初はWindowsからUbuntuへの接続がうまくいきませんでしたが、エラーログを確認することで問題を絞り込むことができました。

今回の経験から、Linuxで問題が発生したときは、サービスを再インストールする前に、まず状態とログを確認することが大切だと改めて感じました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?