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?

#7 multipassのVMでユーザー追加・MacからSSH接続をする

Last updated at Posted at 2025-09-01

はじめに

現在課題でmultipassを使用しています。
新たにVM(バーチャルモジュール)を作成した際に、ssh接続できないことがありました。
そのため、毎回接続が成功するようポイントと共にまとめていきます。

構築環境

・macOS Sonoma 15.1(Apple M1チップ)
・Ubuntu 22.04(Multipass上で構築)

手順

Multipass VM を作成(ローカル)

multipass launch --name wp-server --cpus 2 --memory 4G --disk 16G 

VMに入れるubuntuのバージョンを指定したい時は、末尾に追加

ex)Ubuntu 20.04
multipass launch --name zabbix-server --cpus 2 --memory 4G --disk 10G 20.04

% multipass list

# 以下が表示される
wp-server               Running           192.168.64.55    Ubuntu 24.04 LTS

作成したVMのIPアドレスをコピーしておきましょう

Multipass VM に入る

multipass shell wp-server

ユーザー作成(VM)

$ sudo useradd menta

仮想マシン wp-server の中で menta というローカルユーザーを作成します。

作成したユーザーの使用例

  • Ansible で SSH 接続時に使う管理ユーザーとして menta を利用したいとき
  • 複数のユーザーを切り分けて管理したいとき(例:ubuntu はデフォルト、menta はWordPress管理者用など)
$ sudo grep menta /etc/passwd
#結果
menta:x:1001:1001::/home/menta:/bin/sh

ユーザーが作成されたか確認しましょう。
/etc/passwd は、システム上の全ユーザー情報が記録されているファイルです。
grep menta で menta という文字列が含まれる行を検索し、ユーザー情報が正しく追加されていることを確認します。

sudo visudoの設置(VM)

$ export TERM=xterm
$ sudo visudo

#下部に追加
menta ALL=(ALL) NOPASSWD:ALL
$ sudo cat /etc/sudoers #記載できたかの確認
$ exit

上記を設定することで、ユーザーmenta が sudo を実行するときにパスワードを入力が不要に。

設定してない場合

menta@vm:~$ sudo apt update
[sudo] password for menta:   ← 入力が必要

ssh認証鍵(ローカル)

% cd ~/.ssh
% ssh-keygen -t rsa

上記を押下すると以下の様に聞かれるのでコメントアウトを参考に進めます。

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/PC_User/.ssh/id_rsa): #wp-serverと入力
Enter passphrase (empty for no passphrase): #何も入力せず、Enterを押下
Enter same passphrase again: #何も入力せず、Enterを押下

なぜ.sshで鍵を作成する?

  • SSH がデフォルトで見る場所だから
  • 秘密鍵を安全に管理するための専用ディレクトリ

SSH Config を設定(ローカル)

% vi ~/.ssh/config

自身のIPアドレスに合わせて以下を設定。

Host wp.techbull.cloud
Hostname 192.168.64.55 # multipass list で確認したもの
User menta 
Port 22
IdentityFile ~/.ssh/wp-server

上記の設定をすることでMacからのssh接続が簡単に!

  • 上記の設定を行わないと
    ssh -i ~/.ssh/wp-server menta@192.168.64.55 -p 22
  • 記載すると
    ssh wp.techbull.cloud

公開鍵をコピー(ローカル)

% cat ~/.ssh/wp-server.pub

ここで出た鍵(私の場合はssh-rsa ~MacBook-Pro.localまで)をコピーしておきましょう。

sshd_configの設定(VM)

% multipass shell wp-server

$ sudo su
$ vi /etc/ssh/sshd_config

以下を設定

PubkeyAuthentication yes 
PermitRootLogin yes 
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no

sshd_config は SSH デーモンの設定ファイルで、ここを書き換えると SSH のログイン方法やセキュリティが変わります。

設定項目 効果
PubkeyAuthentication yes 公開鍵でのログインを有効化
PermitRootLogin yes root での直接ログインを許可
AuthorizedKeysFile .ssh/authorized_keys 公開鍵ファイルの場所を指定
PasswordAuthentication no パスワードログインを禁止し、鍵認証のみ有効

公開鍵を VM に配置(VM)

% multipass shell wp-server

$ sudo mkdir -p /home/menta
$ sudo chown menta:menta /home/menta
$ sudo su - menta
$ mkdir ~/.ssh
$ vi ~/.ssh/authorized_keys #控えておいた公開鍵を貼り付ける

ユーザmentaにスイッチし、ターミナル環境で作成した公開鍵を配置。

※スイッチ前にユーザmentaのホームディレクトリが作成されていないため、作成し、所有者・所有グループを設定します。

なぜメンタユーザーにスイッチした?

公開鍵認証方式で SSH ログインできるようにするため
menta ユーザーで SSH するなら、そのユーザーの ~/.ssh/authorized_keys に公開鍵を置く必要があるから

sshdサービスを再起動(VM)

$ sudo systemctl restart ssh

今までの設定を反映させるため再起動。

SShで接続できるか確認(ローカル)

% ssh wp.techbull.cloud

hosts名をIPアドレスに変換(ローカル Mac で)

sudo vi /etc/hosts
# 以下に合わせる
192.168.64.55 wp.techbull.cloud1

お疲れ様でした、上記のコマンドでVMに接続できると思います。

まとめ

本記事を執筆したことで何をしているか曖昧だった部分が理解できたと思います。
今後、multipassでVMを作成する際はこの資料を使っていきます!

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?