3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UbuntuにSSH接続する方法

Last updated at Posted at 2024-05-15

はじめに

WindowsまたはmacOSからUbuntu22.04へSSH接続する方法について解説します.以下の2つの方法を中心に解説します.

  1. CUIで接続する方法
  2. VSCodeを使用した方法

また最後にパスワード無しでSSH接続を設定する方法と,X11を使用しアプリケーションをGUI操作する方法についても解説します.

共通

  1. サーバPCのIPアドレスを確認する
    サーバ(Ubuntu 22.04)で以下のコマンドをターミナルから実行し,IPアドレスを調べます.

    ip a
    
  2. リモートログインの有効化
    サーバPCで「設定」→「共有」→「リモートログイン」をONにします.

  3. OpenSSHのインストール
    OpenSSHをインストールします.システムを最新の状態にし,OpenSSHをインストールしてください.

    sudo apt update && sudo apt upgrade
    sudo apt install openssh-server
    

    インストールが完了したら,OpenSSHを有効にします.
    次のコマンドを実行してください.

    sudo systemctl enable --now ssh
    

CUIでSSH接続する方法

  1. クライアントPCでターミナルを開きます.
  2. 以下のコマンドを実行して,サーバPCへ接続します.
    ssh USER_NAME@IP_ADDRESS
    
    • USER_NAME:サーバのユーザー名
    • IP_ADDRESS:サーバのIPアドレス
  3. Ubuntuのアカウントパスワードを入力してログインします.

VSCodeを使用した方法

準備

  1. 拡張機能のインストール
    VSCodeに「Remote - SSH」拡張機能をインストールします.

    Remote - SSH 拡張機能

  2. SSH設定ファイルの編集

    • Ctrl+Shift+P を押してコマンドパレットを開きます.

    • 「Remote-SSH: SSH 構成ファイルを開く」を選択します.

    • configファイルに以下のような設定を追加します.

      Host 任意のホスト名
          HostName IP_ADDRESS
          User USER_NAME
      

接続手順

  1. VSCodeの左下にある「><」のマークをクリックし,「ホストに接続する」を選択します.

    ホストに接続する

  2. 表示されるホスト名から接続先を選択します.

  3. Ubuntuのログインパスワードを入力すると接続が完了します.


パスワード無しで接続する方法

SSH鍵を利用することで,毎回パスワードを入力する手間を省くことができます.

SSH鍵の作成

  1. クライアントPCで以下のコマンドを実行します.

    ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
    
  2. 公開鍵(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からの場合
  1. ターミナルを開きます.

  2. -Xまたは-Yオプションを付けてSSH接続します.

    ssh -X USER_NAME@IP_ADDRESS
    
    • -X:X11転送を有効にします.
    • -Y:信頼済みのX11転送を有効にします.(セキュリティのリスクが低い環境で推奨)
  3. 接続後DISPLAYの設定をします.

    export DISPLAY=IP_ADDRESS:0.0
    
  4. X11アプリケーションを起動します.例として,xclockを実行します.

    xclock
    
  5. 正常に動作していれば,クライアント側の画面にアプリケーションのウィンドウが表示されます.

  • WSLからの場合
  1. -Xまたは-Yオプションを付けてSSH接続します.
    ssh -X USER_NAME@IP_ADDRESS
    
  2. X11アプリケーションを起動します.例として,xclockを実行します.
    xclock
    
  3. 正常に動作していれば,Windowsの画面にアプリケーションのウィンドウが表示されます.

VSCodeでの使用方法

VSCodeのRemote - SSHでX11転送を有効にするには,SSH構成ファイルに以下を追加します.

  1. configファイルを編集します.

    Host 任意のホスト名
        HostName IP_ADDRESS
        User USER_NAME
        ForwardX11 yes
        ForwardX11Trusted yes
    
  2. Remote - SSHで接続します.

  3. ターミナルでX11アプリケーションを起動します(例:xclock).


この設定により,Windows上でUbuntuサーバのGUIアプリケーションを表示できるようになります.

注意事項

  • SSH機能の対応バージョン
    VScodeのSSH接続はx86_64であればUbuntu 16.04以降,AArch64であればUbuntu18.04以降でサポートされています(2024年12月時点).
  • XサーバでGUI表示する際macOSだと表示できないアプリケーションがある
    ParaviewやRvizの表示をすると,以下のようなエラーを吐き表示できませんでした.
    libGL error: No matching fbConfigs or visuals found
    libGL error: failed to load driver: swrast
    
    2.7.8にダウングレードすれば動くとありました.しかしこれを行うと,そもそもSSH接続ができなくなりました.2016年と情報が古いのでよい新しい情報があれば更新します.

参考資料


3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?