はじめに
WindowsまたはmacOSからUbuntu22.04へSSH接続する方法について解説します.以下の2つの方法を中心に解説します.
- CUIで接続する方法
- VSCodeを使用した方法
また最後にパスワード無しでSSH接続を設定する方法と,X11を使用しアプリケーションをGUI操作する方法についても解説します.
共通
-
サーバPCのIPアドレスを確認する
サーバ(Ubuntu 22.04)で以下のコマンドをターミナルから実行し,IPアドレスを調べます.ip a
-
リモートログインの有効化
サーバPCで「設定」→「共有」→「リモートログイン」をONにします. -
OpenSSHのインストール
OpenSSHをインストールします.システムを最新の状態にし,OpenSSHをインストールしてください.sudo apt update && sudo apt upgrade sudo apt install openssh-server
インストールが完了したら,OpenSSHを有効にします.
次のコマンドを実行してください.sudo systemctl enable --now ssh
CUIでSSH接続する方法
- クライアントPCでターミナルを開きます.
- 以下のコマンドを実行して,サーバPCへ接続します.
ssh USER_NAME@IP_ADDRESS
-
USER_NAME
:サーバのユーザー名 -
IP_ADDRESS
:サーバのIPアドレス
-
- Ubuntuのアカウントパスワードを入力してログインします.
VSCodeを使用した方法
準備
-
拡張機能のインストール
VSCodeに「Remote - SSH」拡張機能をインストールします. -
SSH設定ファイルの編集
-
Ctrl+Shift+P
を押してコマンドパレットを開きます. -
「Remote-SSH: SSH 構成ファイルを開く」を選択します.
-
configファイルに以下のような設定を追加します.
Host 任意のホスト名 HostName IP_ADDRESS User USER_NAME
-
接続手順
パスワード無しで接続する方法
SSH鍵を利用することで,毎回パスワードを入力する手間を省くことができます.
SSH鍵の作成
-
クライアントPCで以下のコマンドを実行します.
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
-
公開鍵(
id_rsa.pub
)をサーバに登録します.
公開鍵の登録方法
-
Windows&WSL&macOS
以下のコマンドを順に実行します.
scp ~/.ssh/id_rsa.pub USER_NAME@IP_ADDRESS:~/ ssh USER_NAME@IP_ADDRESS mkdir -p ~/.ssh cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys rm ~/id_rsa.pub
-
WSL&macOS
※Remote - SSH拡張機能はWindowsのsshを使用しています.そのためこれではWSLの設定は反映されません.ssh-copy-id -i ~/.ssh/id_rsa.pub USER_NAME@IP_ADDRESS
設定が完了したら以下のコマンドでパスワード無しで接続できるか確認します.
ssh USER_NAME@IP_ADDRESS
X11アプリケーションを表示する方法(-XYオプション)
X11アプリケーションを表示する方法について解説します.
WindowsからUbuntu 22.04のX11アプリケーション(GUI)を表示するには,SSH接続時に-X
または-Y
オプションを使用します.以下に手順を説明します.
前提条件
クライアント側の準備
Windows上でX11サーバ(例:XmingやVcXsrv)をインストールし,起動しておきます. macOSの場合はXQuartzでできます.
CUIでの接続方法
- Windows&macOSからの場合
-
ターミナルを開きます.
-
-X
または-Y
オプションを付けてSSH接続します.ssh -X USER_NAME@IP_ADDRESS
-
-X
:X11転送を有効にします. -
-Y
:信頼済みのX11転送を有効にします.(セキュリティのリスクが低い環境で推奨)
-
-
接続後DISPLAYの設定をします.
export DISPLAY=IP_ADDRESS:0.0
-
X11アプリケーションを起動します.例として,
xclock
を実行します.xclock
-
正常に動作していれば,クライアント側の画面にアプリケーションのウィンドウが表示されます.
- WSLからの場合
-
-X
または-Y
オプションを付けてSSH接続します.ssh -X USER_NAME@IP_ADDRESS
- X11アプリケーションを起動します.例として,
xclock
を実行します.xclock
- 正常に動作していれば,Windowsの画面にアプリケーションのウィンドウが表示されます.
VSCodeでの使用方法
VSCodeのRemote - SSHでX11転送を有効にするには,SSH構成ファイルに以下を追加します.
-
config
ファイルを編集します.Host 任意のホスト名 HostName IP_ADDRESS User USER_NAME ForwardX11 yes ForwardX11Trusted yes
-
Remote - SSHで接続します.
-
ターミナルでX11アプリケーションを起動します(例:
xclock
).
この設定により,Windows上でUbuntuサーバのGUIアプリケーションを表示できるようになります.
注意事項
-
SSH機能の対応バージョン
VScodeのSSH接続はx86_64であればUbuntu 16.04以降,AArch64であればUbuntu18.04以降でサポートされています(2024年12月時点). -
XサーバでGUI表示する際macOSだと表示できないアプリケーションがある
ParaviewやRvizの表示をすると,以下のようなエラーを吐き表示できませんでした.2.7.8にダウングレードすれば動くとありました.しかしこれを行うと,そもそもSSH接続ができなくなりました.2016年と情報が古いのでよい新しい情報があれば更新します.libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast
参考資料
- Visual Studio Code で Remote SSH する.#VSCode - Qiita
- 研究室などの Ubuntu Desktop を複数ユーザで使う.#Ubuntu22.04 - Qiita
- Remote - SSH