Linux あれこれ

Linux 関連(一部 Windows11 )の備忘録です。

Vagrant 実践編4: 「EndeavourOS」に ssh 接続等の設定を追加して「Box」を再作成〈H170-5〉

登録日: 2024-01-11 更新日: 2024-03-14

Xubuntu 22.04 LTS」および「Windows11」(22H2) の「VirtualBox 7.0」の仮想マシンに、色々なLinux ディストリビューションをインストールして、自分に最適なものはないか試しています。

開発環境では、それらの仮想マシン(ボックス)の管理に「Vagrant」(ベイグラント) というツールが、よく使われています。

-

実践編1 の投稿で、「Xubuntu 22.04.3 LTS」の「VirtualBox 7.0.10」にて「Vagrant」を使えるようにしました。

実践編3 の投稿で、コミュニティ版のベースとなる、「EndeavourOS」(デスクトップ環境なし) の英語の環境(日本語キーボード指定、ユーザ名は vagrant )の「Box」を作成しました。

-

(実践編4):

今回は、その作成した「Box」を使って、

(公開はしませんが、)「Vagrant」の「Box」の公開を前提にした ssh 接続等の設定を加えて、「Box」ファイルを作成しました。

-

その備忘録です。

-

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック
スマホの場合は、「ホーム」ボタンの横の「<」キーをタップ

-

-


目次

-

Vagrant」での参考:

  1. 「Vagrant」コマンドについて:

  2. 「Vagrant」コマンドの使用例:

  3. 「Vagrant」コマンドの使用例:(目次)

  4.  修正版3: 使い回し可能な「Vagrantfile」:

  5.  もし、PC のディスクに余裕がない場合:

-

今回の作業:

  1. 「仮想マシン」の立ち上げ:

  2.  余分なグループから「vagrant」ユーザを削除:

  3. 「vagrant」で sudo が使えるように設定:

  4.  Vagrant 用公開鍵認証キーを取得:

  5.  sshd サービスの有効化:

  6.  sshd サービス(ssh サーバー)の起動:

  7. 「仮想マシン」に「ssh 接続」:

  8. 「VirtualBox Guest Additions」を追加:

  9.  設定した「仮想マシン」から、「Box」を作成:

-

「まとめ へ」

「目次詳細 へ」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -

Vagrant で「EndeavourOS」の「仮想マシン」を立ち上げ:

-

1). 「デスクトップ環境なし」でインストールしているので、コンソール画面が立ち上がりました:

→早めに「ssh 接続」の設定をすると設定作業が楽になります:

コンソール画面を直接操作するよりも、「ssh 接続」して操作した方がホストOS 側の端末が使えるので、マウス操作での範囲指定や貼付けが使え、また、日本語が文字化けしません。

-

2). 「共有フォルダ」は自動設定されます:

VirtualBox Guest Additions」をインストール、および「ssh 接続」できるように設定、

vagrant up」して「仮想マシン」を作成すると、自動で「共有フォルダ」が作成されました:

→下から 2番目の「共有フォルダー」をクリック:

-

設定内容が表示:

→「vagrant up」するときの「作業フォルダ」がデフォルトの「共有フォルダ」となります。

-

「共有フォルダ」を自動設定するには、パスワードなしのsudo を使える設定が必要でした。

Vagrant は内部的に「ssh 接続」での通信を使い、プロバイダー(VirutalBox)を制御しているようです。

-

-


現在のバージョンを表示:

-

ホストOS : 「Xubuntu 22.04.3 LTS」

2024-01-28 現在

カーネル:

$ uname -r
5.15.0-92-generic

リリース:

$ cat /etc/lsb-release
:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"

→「22.04.3」にアップしています。

-

-

ゲストOS : EndeavourOS

2024-01-28 現在

カーネル:

$ uname -r
6.6.7-arch1-1

リリース:

$ cat /etc/lsb-release
:
DISTRIB_ID="EndeavourOS"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="EndeavourOS Linux"
DISTRIB_CODENAME="rolling"
$ cat /etc/os-release
:
NAME="EndeavourOS"
PRETTY_NAME="EndeavourOS"
ID="endeavouros"
ID_LIKE="arch"
BUILD_ID=rolling             ←(注目)
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://endeavouros.com"
DOCUMENTATION_URL="https://discovery.endeavouros.com"
SUPPORT_URL="https://forum.endeavouros.com"
BUG_REPORT_URL="https://forum.endeavouros.com/c/arch-based-related-questions/bug-reports"
PRIVACY_POLICY_URL="https://endeavouros.com/privacy-policy-2"
LOGO="endeavouros"

→インストール時に使用したイメージの作成日付でしたが、 再び、「BUILD_ID=rolling」の表示に戻っています。

-

「Welcome」のバージョン:

$ eos-welcome --version
:
3.85-1

→バージョン表示にて、「ログの登録」の行が表示される場合は「こちら 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - --

VirtualBox」について:

-

VirtualBox」は、Oracle が開発している「仮想マシン」を構築するためのソフトウェアです。

-

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ---

Vagrant」 (ベイグラント) について:

-

公式サイト:

Vagrant by HashiCorp

-

仮想マシン」の管理や操作をコマンドで使うための「フロントエンド」のソフトウェアです:

-

→詳細は、以前に投稿した「こちら 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----

「EndeavorOS」について:

-

公式サイト:

-

  • EndeavorOS は、インストールが楽で、使い勝手をよくした「Arch Linux」です。

  • GUI 環境で「Arch Linux」を使いたいときに、オススメします。

-

→詳細は、以前に投稿した「こちら 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -----

「EndeavourOS」(OpenBox) について:

-

公式サイト:

EndeavourOS-Community-Editions/openbox

→サイトに置かれた情報は「こちら 」を参照:

-

その他の詳細は「こちら 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -

公開する「Box」の元となる「仮想マシン」を作成するときの留意点:

-

インストールする環境は、基本「英語」の環境:

-

言語は「英語」指定、キーボードは「日本語キーボート」指定、でインストールしました:

言語を「日本語」にすると、「ホーム」フォルダが日本語になることと、デフォルトのコンソールでは日本語が文字化けして、設定作業が面倒です:

-

→詳細は、以前に投稿した「こちら 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- --

(前回の作業):

-

Vagrant 実践編3: 新規に「EndeavourOS」(デスクトップなし) の「Box」を作成〈H170-4

-

「EndeavourOS」にて、「デスクトップ環境なし」 の英語の環境(日本語キーボード指定、ユーザ名は vagrant )をインストールして、「Box」を作成しました。

-

-

(前回の作業の続き):

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

1. 「仮想マシン」のクリア:

-

前回の投稿をした後に、「仮想マシン」を色々といじったので、「仮想マシン」を作成し直しました:

-

1). 「仮想マシン」の状態を確認:

$ cd ~/ダウンロード/vm/endeavour-base/
$ vagrant status
Current machine states:

default                   running (virtualbox)
:

→「仮想マシン」の「default」が、「起動中」です。

-

VirtualBox」に作成された仮想マシン名は、「作業フォルダ」名と「default」と任意の数字の組合せになります:

例: 「endeavour-base_default_1704888667727_61081」

-

Vagrant」から見える仮想マシン名は「default」です。

-

2). 「仮想マシン」の停止(電源オフ):

$ cd ~/ダウンロード/vm/endeavour-base/
$ vagrant halt
==> default: Attempting graceful shutdown of VM...
    default: Guest communication could not be established! This is usually because
    default: SSH is not running, the authentication information was changed,
    default: or some other networking issue. Vagrant will force halt, if
    default: capable.
==> default: Forcing shutdown of VM...

和訳:

==> default: 「仮想マシン」の正常なシャットダウンを試みています...
    default: ゲスト通信が確立できませんでした。
    default: これは通常、SSH が実行されていない、認証情報が変更された、
    default: またはその他のネットワークの問題が原因です。
    default: 可能であれば、Vagrant は強制的に停止します。
==> default: 「仮想マシン」を強制的にシャットダウンします...

ssh 接続の設定がされていないので、警告が表示されますが無視。

-

3). 「仮想マシン」の削除:

$ cd ~/ダウンロード/vm/endeavour-base/
$ vagrant destroy
    default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Destroying VM and associated drives...

和訳:

    default: 「仮想マシン」の「default」を削除してもよろしいですか? [y/N] y
==> default: 「仮想マシン」と関連ドライブを削除しています...

→「y」Enter にて、削除

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----

2. 「仮想マシン」の作成と立ち上げ:

-

仮想マシン」の立ち上げ:

$ cd ~/ダウンロード/vm/endeavour-base/
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'Endeav-base-00'...
Progress: 70%

しばらく待ちます:

==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: endeavour-base_default_1704888667727_61081
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Connection reset. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Connection reset. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Connection reset. Retrying...

前回、ssh 接続のループ回避の設定 を行っているので、プロンプトに戻り、端末が開放されました:

-

赤色の警告表示:

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
ubn@ubn-box:~/ダウンロード/vm/endeavour-base$ 

-

実際の「端末」画面:

ssh 接続は未設定なので、警告は無視

-

仮想マシン」が立ち上がりました:

→「デスクトップ環境なし」でインストールしているので、コンソール画面が立ち上がりました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -----

3. 現在の「仮想マシン」の状態を確認:

-

「ホストOS」の端末にて確認:

-


1). 参考: 現在、Vagrant で管理されている「仮想マシン」:

$ vagrant global-status
id       name    provider   state    directory                           
-------------------------------------------------------------------------
5d12367  default virtualbox poweroff /home/ubn/ダウンロード/vm/ubn2204         
f104680  default virtualbox running  /home/ubn/ダウンロード/vm/endeavour-base  ←(注目)

→「仮想マシン」の「id」と、その管理に使われている「作業フォルダ」名がわかります。

-


2). VirtualBox の「仮想マシン」の実際のフォルダ:

$ ls -1Ap ~/'VirtualBox VMs'
EndeavourOS_OpenBox/
EndeavourOS_base/
endeavour-base_default_1704888667727_61081/  ←(Vagrant で管理)
ubn2204_default_1703902769818_14280/         ←(Vagrant で管理)

→上記のすべてのフォルダ名が、VirtualBox で見える「仮想マシン」名です。

下の 2つのフォルダ名に含まれている「default」が、Vagrant で見える「仮想マシン」名です。

-


3). Vagrant に登録(ローカルのホームに保存)されている「Box」:

$ vagrant box list
Endeav-base-00     (virtualbox, 0)                 ←(注目)
generic/ubuntu2204 (virtualbox, 4.3.8, (amd64))

Vagrant で見える「仮想マシン」のベース(元)として使える(使われた)「Box」です。

各「作業フォルダ」の Vagrantfile で利用されるベースが指定されています。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -

4. 「仮想マシン」にて、「vagrant」ユーザでログイン:

-

仮想マシン」のコンソール画面にて操作:

ssh 接続の設定が済んでいないので、直接、コンソール画面で操作します:

-

vagrant」ユーザでログイン:

EndeavourOS Linux 6.6.7-arch1-1 (tty1)

vagrant login:

→ユーザ名に「vagrant」を入力

-

password:

→パスワードに「vagrant」を入力

-

[vagrant@vagrant ~]$

コマンドプロンプトが変わりました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- --

4-2. 参考: 「vagrant」ユーザが追加されていない場合:

-

他のユーザにログイン後に 「vagrant」ユーザを追加:

-


1). 「root」になります:

$ su -
Password:

→パスワードは、ログインしたユーザのパスワード

-


2). 「vagrant」ユーザの作成:

# useradd -m vagrant

-


3). 「vagrant」ユーザのパスワード設定:

# passwd vagrant

→パスワードは「vagrant

-


4). 「vagrant」でログイン:

# su - vagrant

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ---

5. 「仮想マシン」の「vagrant」ユーザで操作:

-

仮想マシン」のコンソール画面にて操作:

-


1). 確認:

[vagrant@vagrant ~]$ pwd
/home/vagrant
[vagrant@vagrant ~]$ id
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant),3(sys),981(rfkill),998(wheel)

→「ベースボックス」にするには、余分なグループがあります。

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

参考: 「wheel」グループについて:

「wheel」グループに属すると、コマンドに関しては「root」と同等の権限を持ちます:

-

「root」のパスワードを知っていれば、直接、コンソールを操作して「root」でログインできます。 また、「su」コマンドで「root」ユーザにスイッチできます。

ただし、「/etc/pam.d/su」の設定次第では、「wheel」グループに属していない人は、「root」のパスワードを知っていても「su」コマンドで「root」になれません。

また、ネット経由の ssh だと「root」でログインできないのが普通です。

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

参考: 「rfkill」について:

Power_Management_Guide/RFKill から抜粋:

多くのコンピュータが、Wi-FiBluetooth、及び 3G のデバイスを含む電波発信器を内蔵しています。 これらのデバイスは電力を消費し、 使用されない時は無駄になります。

-

Rfkill は、システム上の RFKill 対応のデバイスをクエリ、変更できるコマンドラインツール(rfkill パッケージ)です。 RFkill をサポートしたカーネルドライバーは、この API を使用してカーネルに登録し、デバイスを有効にしたり無効にできます。

-

バイスの一覧を確認するには:

$ rfkill list
$

-


2). sudo が使えるか確認:

[vagrant@vagrant ~]$ sudo ls
[sudo] password for vagrant:
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

-

「/etc/sudoers*」の確認:

[vagrant@vagrant ~]$ sudo ls /etc/sudoers*
/etc/sudoers

/etc/sudoers.d:
10-installer

-

「/etc/sudoers」の確認:

[vagrant@vagrant ~]$ sudo cat /etc/sudoers
:
## Read dop-in files from /etc/sudoers.d
@includedir /etc/sudoers.d

→設定ファイルの最後に「外部ファイル」を取り込むフォルダの定義がありました。

-

「/etc/sudoers.d/10-installer」の確認:

[vagrant@vagrant ~]$ sudo cat /etc/sudoers.d/10-installer
%wheel ALL=(ALL) ALL

外部ファイルに「wheel」グループの権限の定義がありました。

ファイル名からして、OS のインストールのユーザ作成時に追加されたと思われます。

-


3). 余分なグループから「vagrant」ユーザを削除:

「Box」を公開しないのであれば、要らない作業です:

-

(1). 「root」になります:
[vagrant@vagrant ~]$ su -
Password:

→パスワードは「vagrant

[root@vagrant ~]#

→プロンプトが「root」になりました。

-

(2). 「sys」グループから、「vagrant」ユーザを削除:
[root@vagrant ~]# gpasswd -d vagrant sys

-

(3). 「rfkill」グループから、「vagrant」ユーザを削除:
[root@vagrant ~]# gpasswd -d vagrant rfkill

-

(4). 「wheel」グループから、「vagrant」ユーザを削除:
[root@vagrant ~]# gpasswd -d vagrant wheel

-

(5). 確認:
[root@vagrant ~]# id vagrant
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)

→削除できました。完全に反映させるには再起動が必要。

-


4). 「wheel」グループから抜けたので、「vagrant」で sudo が使えるように設定:

「wheel」グループから抜けて、そのままだと、「vagrant」で sudo が使えなくなります:

-

「/etc/sudoers」の修正:
[root@vagrant ~]# visudo

「nano」でなく、「vi」が起動されました。

-

「↓」キーでファイルの最後の行に移動

「End」キーで行末に移動

「Esc」「Esc」「a」

最後の行の行末で、キー入力が可能になるので、2回、改行してから、下記を入力:

## Allow root to run any commands anywhere
root    ALL=(ALL)   ALL
Defaults:vagrant    !requiretty
vagrant ALL=(ALL)   NOPASSWD: ALL

大きなすき間は、半角スペース x 4つ にすると良いです

-

説明:

下から 2行目:

 全ユーザではなく、特定の「vagrant」ユーザだけに「tty なしでの sudo」を認めます:
 →sudo エラーの回避
 
下から 1行目:

 「vagrant」ユーザが、sudo をパスワードなしで実行できるようにします:

-

「Esc」「Esc」「:wq」Enter

→書き込み後に、終了しました:

[root@vagrant ~]#

→「visudo」にて入力ミスがあると、やり直さないとコマンドプロンプトに戻りません。

コマンドプロンプトに戻ったということは、構文のミスはなかったということ。

-


5). 「vagrant」に抜けます:

[root@vagrant ~]# exit
logout
[vagrant@vagrant ~]$ 

→プロンプトが「vagrant」に戻りました:

-

[vagrant@vagrant ~]$ pwd
/home/vagrant

-


6). sudo が使えるかの確認と、修正されたかの確認:

[vagrant@vagrant ~]$ sudo cat /etc/sudoers

パスワードなしで、下記が表示:

:
## Read dop-in files from /etc/sudoere.d
@includedir /etc/sudoers.d

## Allow root to run any commands anywhere
root    ALL=(ALL)   ALL
Defaults:vagrant    !requiretty
vagrant ALL=(ALL)   NOPASSWD: ALL

→OK

-

ファイルの最終行に記述すれば、外部ファイルの定義を取り込んでも、上書きして、最優先になります。

-


7). 再起動:

[vagrant@vagrant ~]$ reboot

-


8). 「vagrant」ユーザでログイン:

EndeavourOS Linux 6.6.7-arch1-1 (tty1)

vagrant login:

→ユーザ名に「vagrant」を入力

-

password:

→パスワードに「vagrant」を入力

-

[vagrant@vagrant ~]$

コマンドプロンプトが変わりました。

-


9). 確認:

-

[vagrant@vagrant ~]$ ls

水色表示:

Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

-

[vagrant@vagrant ~]$ sudo ls

パスワードを聞いてきません:

白色表示:

Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

-

[vagrant@vagrant ~]$ id
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)

→余分なグループが表示されません。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----

6. ssh 関連の設定:

-

仮想マシン」のコンソール画面にて操作:

-


1). 確認:

-

[vagrant@vagrant ~]$ ls -1Ap

色分けして表示:

.bash_history
.bash_logout
.bash_Profile
.bashrc
.config/
Desktop/
Documents/
Downloads/
Music/
Pictures/
Public/
Templates/
Videos/

→「~/.ssh」はありません

-


2). Vagrant 用公開鍵認証キーを取得:

$ mkdir -p /home/vagrant/.ssh
$ chmod 700 /home/vagrant/.ssh

$ cd /home/vagrant/.ssh 
$ curl -k -L -o authorized_keys 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub'
$ chmod 600 /home/vagrant/.ssh/authorized_keys
$ chown -R vagrant:vagrant /home/vagrant/.ssh

-


3). ホームに移動:

[vagrant@vagrant ~]$ cd

-


4). 確認:

[vagrant@vagrant ~]$ ls -lAp /home/vagrant/ | grep ssh
:
drwx------   2 vagrant vagrant   4096 1■ 10 23:42 .ssh/

→ファイル属性は「700」で、「vagrant:vagrant」の所有

-

[vagrant@vagrant ~]$ ls -lAp /home/vagrant/.ssh
:
-rw-------   1 vagrant vagrant   409 1■ 10 23:42 authorized_keys

→ファイル属性は「600」で、「vagrant:vagrant」の所有

-


5). ssh 関連のアプリがインストールされているかを確認:

「EndeavourOS」の場合:

$ pacman -Ss ssh | grep installed
:
core/libssh2 1.11.0-1 [installed]
core/openssh 9.6p1-1 [installed] ←(注目)
extra/libssh 0.10.6-1 [installed]

→「openssh」がインストールされています。

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

参考: 「Ubuntu」の場合:

$ apt list *ssh* --installed
:
libssh-4/jammy-updates,jammy-security,now 0.9.6-2ubuntu0.22.04.1 amd64 [installed,automatic]
openssh-client/jammy-updates,now 1:8.9p1-3ubuntu0.4 amd64 [installed,automatic]  ←(注目)
openssh-server/jammy-updates,now 1:8.9p1-3ubuntu0.4 amd64 [installed]  ←(注目)
openssh-sftp-server/jammy-updates,now 1:8.9p1-3ubuntu0.4 amd64 [installed,automatic]
ssh-import-id/jammy,now 5.11-0ubuntu1 all [installed]

→「openssh-client」と「openssh-server」がインストールされています。

-

Linux ディストリビューションによって、パッケージ名や機能の分割のやり方は異なります。

-


6). ssh 関連のサービスが起動されているか確認:

$ sudo systemctl status sshd
○ sshd.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; preset: disabled)
     Active: inactive (dead)

-


7). sshd サービスの有効化:

$ sudo systemctl enable sshd
Created symlink /etc/systemd/system/multi-user.target.wants/sshd.service → /usr/lib/systemd/system/sshd.service.

→サービス名に付く(.service) は省略できます

-


8). sshd サービス(ssh サーバー)の起動:

$ sudo systemctl start sshd
$

→サービス名に付く(.service) は省略できます

-


9). sshd サービスが起動されたか確認:

$ sudo systemctl status sshd
● ssh.service - OpenSSH Daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: disabled)
     Active: active (running) since Thu 2024-01-11 00:22:02 JST; 1min 39S ago
   Main PID: 655 (sshd)
      Tasks: 1 (limit: 4642)
     Memory: 2.1M (peak: 2.3M)
        CPU: 22ms
     CGroup: /system.slice/sshd.service
             └─655 "sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups"

:

「q」で表示の終了

-


10). 再起動:

[vagrant@vagrant ~]$ reboot

-


11). ログイン画面にて、ログインせずにそのまま:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -----

7. 「仮想マシン」に「ssh 接続」:

-

ホストOS の端末にて:

-


1). 「仮想マシン」が起動していることを確認:

$ pwd
/home/ubn/ダウンロード/vm/endeavour-base

-

$ vagrant status
Current machine states:

default                   running (virtualbox)

-


2). 「ssh-config」の確認:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/ubn/.vagrant.d/insecure_private_keys/vagrant.key.ed25519
  IdentityFile /home/ubn/.vagrant.d/insecure_private_keys/vagrant.key.rsa
  IdentitiesOnly yes
  LogLevel FATAL
  PubkeyAcceptedKeyTypes +ssh-rsa
  HostKeyAlgorithms +ssh-rsa

-


3). 「ssh 接続」:

$ vagrant ssh
Last login: Wed Jan 10 23:19:24 2024
[vagrant@vagrant ~]$ 

→パスワードなしで自動ログインされました。

[vagrant@vagrant ~]$ date
2024年  1月 11日 木曜日 00:43:55 JST

→「date」コマンドが文字化けしません。

-

[vagrant@vagrant ~]$ ls -lAp
:
-rw------- 1 vagrant vagrant  808  1月 11 00:32 .bash_history
-rw-r--r-- 1 vagrant vagrant   21 11月 23 00:26 .bash_logout
-rw-r--r-- 1 vagrant vagrant   57 11月 23 00:26 .bash_profile
-rwxr-xr-x 1 vagrant vagrant 2691 11月 17 20:33 .bashrc
drwxr-xr-x 3 vagrant vagrant 4096  1月 10 21:29 .config/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Desktop/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Documents/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Downloads/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Music/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Pictures/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Public/
drwx------ 2 vagrant vagrant 4096  1月 10 23:42 .ssh/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Templates/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Videos/

-


4). ssh サーバー設定で 「UseDNS」設定を no に設定:

サーバーへ ssh 接続を行うと、サーバー側で接続元IPアドレスの逆引きを行うため、 DNS サーバーへの問い合わせを行います。

-

マシンまたは Vagrant マシンがインターネットに接続されていない場合(ローカルネットワーク上のサーバーへのSSH接続)でも ssh の速度を維持するには、 ssh サーバー設定で 「UseDNS」設定を no(SSHサーバーの逆引きを無効)に設定することで、 接続している ssh クライアントで何秒もかかる可能性がある「逆引き DNS ルックアップ」が回避されます。

-

「/etc/ssh/sshd_config」の修正:
$ sudo nano /etc/ssh/sshd_config

Ctrl+W で、検索

Search: DNS

-

修正:

#UseDNS no

↓ コメント行を解除:

UseDNS no

Ctrl+O で、保存

Ctrl+X で、終了

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -

8. 「仮想マシン」にて、「VirtualBox Guest Additions」を追加:

-

仮想マシン」に「ssh 接続」したままで操作:

-

「EndeavourOS」の公式のデスクトップ環境には、標準で(専用にカスタマイズした)「VBoxGuestAdditions」がインストールされていますが、デスクトップなしの環境には「VBoxGuestAdditions」はインストールされていません。

-


1). 必要なツールのインストール:

「EndeavourOS」の場合:

[vagrant@vagrant ~]$ sudo pacman -S dkms
resolving dependencies...
looking for conflicting packages...

Package (1)  New Version  Net Change

extra/dkms   3.0.11-1       0.11 MiB

Total Installed Size:  0.11 MiB

:: Proceed with installation? [Y/n] 

→Enter

-

[vagrant@vagrant ~]$ sudo pacman -S gcc make perl

:: Proceed with installation? [Y/n] 

→Enter

インストールされている可能性が高いですが、再インストールでもOK

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

参考: 「Ubuntu」の場合:
$ sudo apt update
$ sudo apt install linux-headers-$(uname -r) build-essential dkms

→ダイアログ画面が表示されたら、Tab キーで「OK」を選び、Enter

-

$ sudo apt install gcc make perl

-


2). 「仮想マシン」の画面にて、

「Devices」 →「Upgrade Guest Additions...」をクリック

-

「Install Guest Additions CD images...」でなく、「Upgrade Guest Additions...」が選べるならクリックすると、

「CD マウント」と「シェルスクリプトの実行」が自動で行われます:

-

→右の通知領域に「Installing image ...」60% が表示されるので、100% になるまで待ちます。

エラーの表示は無視。

-


3). ホストOS の端末にて、「ssh 接続」からログアウト:

[vagrant@vagrant ~]$ exit
logout
ubn@ubn-box:~/ダウンロード/vm/endeavour-base$ 

→プロンプトが戻りました。

-


4). 「仮想マシン」の停止(電源オフ):

$ cd ~/ダウンロード/vm/endeavour-base/
$ vagrant halt
==> default: Attempting graceful shutdown of VM...
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...

和訳:

==> default: 仮想マシンの正常なシャットダウンを試行しています...
    default: 
    default: Vagrant の安全でないキーが検出されました。
    default: Vagrant は、セキュリティを向上させるために、これを
    default: 新しく生成されたキーペアに自動的に置き換えます。
    default: 
    default: 生成された公開キーをゲスト内に挿入します...
    default: ゲストに安全でないキーが存在する場合はそれを削除します...
    default: キーが挿入されました!新しい SSH キーを使用した切断と再接続...

→「項番 6 - 2) 」でわざと「安全でないキー」を配置しています。

-

「安全でないキー」を検出すると自動で「安全なキーペア」に置換えられます:

(そういうVagrant の仕組みにより、設定時のキーペアの生成をせずにダウンロードできます)

-


5). 「ホストOS」も再起動:

ホストOS にて、起動しているアプリを閉じます:

-

ホストOS の端末にて、

$ reboot

→「共有フォルダ」を有効にするための操作です。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- --

9. 「仮想マシン」を立ち上げて確認:

-

仮想マシン」の立ち上げ:

$ cd ~/ダウンロード/vm/endeavour-base/
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => /home/ubn/ダウンロード/vm/endeavour-base
ubn@ubn-box:~/ダウンロード/vm/endeavour-base$ 

→「ssh 接続」のリトライエラーが消えました。

「guest additions」のバージョンの整合性のチェックも OK。

-

「共有フォルダ」が自動でマウントされました:
  • 仮想マシンの「/vagrant

  • ホストOS の「~/ダウンロード/vm/endeavour-base」(つまり、作業フォルダ)

-

→「Virtualbox」マネージャの画面でも、「共有フォルダ」が有効になったことが確認できます:

→下から 2番目の「共有フォルダー」をクリック:

-

設定内容が表示:

→「vagrant up」するときの「作業フォルダ」が「共有フォルダ」となります。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ---

10. 設定の完了した「仮想マシン」から、「Box」を作成:

-

参考:「vagrant package」コマンドの使い方:

$ vagrant package [--base 対象の「仮想マシン」の名前]、または[id] --output [ファイル名].box

→「id」は「Vagrant」で管理されている「仮想マシン」のみで使えます:

-


1). 「仮想マシン」の「id」を確認:

$ vagrant global-status
id       name    provider   state    directory                           
-------------------------------------------------------------------------
f104680  default virtualbox running  /home/ubn/ダウンロード/vm/endeavour-base ←(注目) 

→「id」は「f104680」です

-


2). 「仮想マシン」の停止(電源オフ):

$ cd ~/ダウンロード/vm/endeavour-base/
$ vagrant halt
==> default: Attempting graceful shutdown of VM...

→「ssh 接続」の警告が消えました。

-


3). 「.box」ファイルを作成したい場所を準備:

すでに作成済みです:

$ mkdir -p ~/ダウンロード/vm/box-share/

-


4). 「.box」ファイルを作成:

-

(1). 場所の移動:
$ cd ~/ダウンロード/vm/box-share/
$ ls -lA
:
-rw-rw-r-- 1 ubn ubn 2958974232 12月 20 21:30 pkg-EndeavourOS_base-inst.box

-

(2). 作成:
$ cd ~/ダウンロード/vm/box-share/
$ vagrant package f104680 --output pkg-EndeavourOS_base-jp.box
==> default: Clearing any previously set forwarded ports...
==> default: Exporting VM...
==> default: Compressing package to: /home/ubn/ダウンロード/vm/box-share/pkg-EndeavourOS_base-jp.box

「id」指定にすると、「--base」を付けると実行できませんでした。外すと実行できました。
「id」指定時の書式が違うみたい。

時間がかかります:

-

(3). 確認:
$ ls -lA ~/ダウンロード/vm/box-share/
:
-rw-rw-r-- 1 ubn ubn 2958974232 12月 20 21:30 pkg-EndeavourOS_base-inst.box
-rw-rw-r-- 1 ubn ubn 2979814018  1月 11 17:31 pkg-EndeavourOS_base-jp.box

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----

11. 作成された「Box」ファイルを「Box」の一覧に追加:

-


1). できた「Box」ファイルをホームの「Box」一覧に追加:

$ cd ~/ダウンロード/vm/box-share/
$ vagrant box add --name Endeav-base-jp pkg-EndeavourOS_base-jp.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'Endeav-base-jp' (v0) for provider: 
    box: Unpacking necessary files from: file:///home/ubn/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89/vm/box-share/pkg-EndeavourOS_base-jp.box
==> box: Successfully added box 'Endeav-base-jp' (v0) for ''!

時間がかかります:

-


2). 「Box」の一覧に追加されたか確認:

$ vagrant box list
Endeav-base-00 (virtualbox, 0)
Endeav-base-jp (virtualbox, 0)             ←(追加)

-


3). 参考: ホームの「Box」の一覧にあるファイルを確認:

$ ls -lA ~/.vagrant.d/boxes/Endeav-base-jp/0/virtualbox/
-rw-rw-r-- 1 ubn ubn        630  1月 11 17:35 Vagrantfile
-rw-rw-r-- 1 ubn ubn 3014952448  1月 11 17:36 box-disk001.vmdk
-rwx------ 1 ubn ubn       9183  1月 11 17:36 box.ovf
-rw-rw-r-- 1 ubn ubn         25  1月 11 17:36 metadata.json
-rw------- 1 ubn ubn        400  1月 11 17:36 vagrant_private_key ←(注目)

-

ホームの「Box」の一覧にある「Vagrantfile」ファイルを確認:
$ cat ~/.vagrant.d/boxes/Endeav-base-jp/0/virtualbox/Vagrantfile
Vagrant::Config.run do |config|
  # This Vagrantfile is auto-generated by `vagrant package` to contain
  # the MAC address of the box. Custom configuration should be placed in
  # the actual `Vagrantfile` in this box.
  config.vm.base_mac = "080027B2BB06"
end

# Load include vagrant file if it exists after the auto-generated
# so it can override any of the settings
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = File.expand_path("../vagrant_private_key", __FILE__)
end

→「Vagrantfile」の元ファイルになります。

MAC アドレスと、「Vagrantfile」の組み込みと、ssh 接続の「private_key」のパスが定義されています。

-

これに、「作業フォルダ」の「Vagrantfile」が 上書き(追加)されます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -----

12. 「Vagrantfile」の修正:

-

1). 「仮想マシン」を管理する「作業フォルダ」を準備:

別の「作業フォルダ」を準備:

$ mkdir -p ~/ダウンロード/vm/endeavour-base-jp/

→「仮想マシン」を管理する場所になります

-

「作業フォルダ」は使い回すのでなく、新しい名前で作成した方が混乱しないと思います。

-

2). 「Vagrantfile」の作成:

$ cd ~/ダウンロード/vm/endeavour-base-jp/
$ featherpad Vagrantfile

↓ すべて貼付け:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "Endeav-base-jp"
  #config.vm.boot_timeout = 300
  config.vm.boot_timeout = 60
  config.vm.provider "virtualbox" do |vb|
    # Display the VirtualBox GUI when booting the machine
    vb.gui = true
    #vb.memory = "2048"
    vb.memory = "4096"
    vb.cpus = 2
    #vb.customize ["modifyvm", :id, "--graphicscontroller", "vboxsvga"]
    vb.customize ["modifyvm", :id, "--graphicscontroller", "vmsvga"]
  end
end

-

参考:「config.vm.box = "Endeav-base-jp"」の行を変更すれば、他の「仮想マシン」でも使い回し出来ます:

-

追記: GUI(デスクトップ環境)を使う場合:

Ubuntu」の場合は、「vb.customize ["modifyvm", :id, "--graphicscontroller", "vmsvga"]」を有効にすると、 ウィンドウサイズの拡大で、リアルタイムに解像度が調整されます。

「EndeavourOS」の場合は、「vb.customize ["modifyvm", :id, "--graphicscontroller", "vboxsvga"]」を有効にすると、 再ログインでログアウト直前の解像度に調整されます。

-

3). 確認:

$ ls -1Ap
:
Vagrantfile         ←(追加)

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- -

13. 「仮想マシン」の生成と立ち上げ:

-

1). 「仮想マシン」の生成と立ち上げ:

$ cd ~/ダウンロード/vm/endeavour-base-jp/
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'Endeav-base-jp'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: endeavour-base-jp_default_1704962773770_3717
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => /home/ubn/ダウンロード/vm/endeavour-base-jp
ubn@ubn-box:~/ダウンロード/vm/endeavour-base-jp$ 

→エラーなしで、プロンプトに戻りました。

-

2). 「仮想マシン」が立ち上がりました

→「デスクトップ環境なし」なので、コンソール画面が立ち上がりました。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- --

14. 「仮想マシン」に「ssh 接続」:

-

ホストOS の端末にて:

-

1). 「仮想マシン」が起動していることを確認:

$ pwd
/home/ubn/ダウンロード/vm/endeavour-base-jp

-

$ vagrant status
Current machine states:

default                   running (virtualbox)

-

2). 「ssh-config」の確認:

$ cd ~/ダウンロード/vm/endeavour-base-jp/
$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/ubn/.vagrant.d/boxes/Endeav-base-jp/0/virtualbox/vagrant_private_key
  IdentitiesOnly yes
  LogLevel FATAL
  PubkeyAcceptedKeyTypes +ssh-rsa
  HostKeyAlgorithms +ssh-rsa

→「IdentityFile」の行が 1行に変わりました。

-

3). 「ssh 接続」:

$ cd ~/ダウンロード/vm/endeavour-base-jp/
$ vagrant ssh
Last login: Thu Jan 11 17:09:57 2024 from xx.xx.xx.xx
[vagrant@vagrant ~]$ 

→パスワードなしで自動ログインされました。

[vagrant@vagrant ~]$ date
2024年  1月 11日 木曜日 17:51:29 JST

→「date」コマンドが文字化けしません。

-

[vagrant@vagrant ~]$ ls -lAp
:
-rw------- 1 vagrant vagrant 1209  1月 11 17:11 .bash_history
-rw-r--r-- 1 vagrant vagrant   21 11月 23 00:26 .bash_logout
-rw-r--r-- 1 vagrant vagrant   57 11月 23 00:26 .bash_profile
-rwxr-xr-x 1 vagrant vagrant 2691 11月 17 20:33 .bashrc
drwxr-xr-x 3 vagrant vagrant 4096  1月 10 21:29 .config/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Desktop/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Documents/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Downloads/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Music/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Pictures/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Public/
drwx------ 2 vagrant vagrant 4096  1月 11 01:53 .ssh/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Templates/
drwxr-xr-x 2 vagrant vagrant 4096  1月 10 21:29 Videos/

-

[vagrant@vagrant ~]$ ls -lAp ~/.ssh/
:
-rw------- 1 vagrant vagrant 89  1月 11 01:53 authorized_keys

-

[vagrant@vagrant ~]$ id
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)

→余計なグループに属していません。

-


4). 参考:「ssh 接続」で再起動する場合:

[vagrant@vagrant ~]$ reboot

ピンク表示:

Call to Reboot failed: Interactive authentication required.

和訳:

再起動の呼び出しが失敗しました: 対話型認証が必要です。

-

再起動する場合は:

[vagrant@vagrant ~]$ sudo reboot

→「ssh 接続」での「reboot」は「sudo」が必要です

-

5). ログアウト:

[vagrant@vagrant ~]$ logout

もしくは、

[vagrant@vagrant ~]$ exit

もしくは、

Ctrl+D

コマンドプロンプトが変わりました:

ubn@ubn-box:~/ダウンロード/vm/endeavour-base-jp$ 

-


6). 「仮想マシン」を停止:

ホストOS の端末にて、

$ cd ~/ダウンロード/vm/endeavour-base-jp/
$ vagrant halt
==> default: Attempting graceful shutdown of VM...

→「仮想マシン」が電源オフ

ssh 接続」の警告は表示されません。

-


7). 参考: 「仮想マシン」についての確認:

-

Vagrant で管理されている「仮想マシン」:
$ vagrant global-status
:
id       name    provider   state    directory                             
---------------------------------------------------------------------------
2483206  default virtualbox poweroff /home/ubn/ダウンロード/vm/endeavour-base-jp 

→「仮想マシン」の「id」と、その管理に使われている「作業フォルダ」名がわかります。

-

VirtualBox の「仮想マシン」の実際のフォルダ:
$ ls -1Ap ~/'VirtualBox VMs'
:
$ ls -1Ap ~/'VirtualBox VMs'
EndeavourOS_OpenBox/
EndeavourOS_base/
endeavour-base-jp_default_1704962773770_3717/  ←(Vagrant で管理)注目
endeavour-base_default_1704914580912_2584/  ←(Vagrant で管理)

→「作業フォルダ」を使い回すと、新しい「仮想マシン」か分かりづらいので、

「作業フォルダ」の名前を変えました。

-

Vagrant に登録(ローカルのホームに保存)されている「Box」:
$ vagrant box list
:
Endeav-base-00 (virtualbox, 0)
Endeav-base-jp (virtualbox, 0)  ←(注目)

Vagrant で見える「仮想マシン」のベース(元)になった「Box」です。

各「作業フォルダ」ごとに、Vagrantfile で利用されるベースが指定されます。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ---

15. 参考: 本来であれば、最低限行うべき「ssh 接続」の設定:

-

作業は要りません。

Vagrant 以外の環境での設定についてです。
鍵の生成を行っているのが違うようです。Vagrant ではダウンロードしています。

-

参考:

新しいサーバ起動後に最低限行うべき SSH 設定

-


1). 最低限のセキュリティ事項:

  • ポート番号の変更:
  • root ユーザへのログインを禁止:
  • パスワードによるログインを禁止:

-


2). ssh 設定ファイルの修正:

-

(1). ssh を 22番ポート以外に変更:

ssh を 22番ポートのまま使用すると、無差別攻撃の的になります

-

(2). ssh 接続では、root ユーザとしてログインできないように設定:

→root ユーザとして作業したい場合は、一旦、一般ユーザとしてログインし、
その後、su コマンドで root ユーザのパスワードを入力してログインします

-

(3). ssh でログインする方法を「鍵のみ」に絞り、「パスワード」によるログインを無効化:

→パスワードによるログインを許可していると、総当たり攻撃の的になります

-


3). 「公開鍵」の配置:

鍵の生成はサーバではなくクライアント(PC)側で行います:
生成された 2つの鍵のうち、pub が付かない「id_rsa」が秘密鍵で、pubが付く「id_rsa.pub」が公開鍵です。

id_rsa.pub(公開鍵)をサーバ側(仮想マシン側)に配置します:
場所は「~/.ssh」直下で、ファイル名は「authorized_keys」とします。

-

(1). ホームディレクトリに「.sshディレクトリを作成:
$ cd
$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh

-

(2). 認証される公開鍵リストのファイルを作成:
$ nano authorized_keys

これに、

$ cat [鍵名].pub

で表示される公開鍵の内容を貼り付けて保存

-

(3). パーミッションを設定:
$ chmod 600 authorized_keys

→オーナーのみ読み書き可能に設定します

-


4). 「sshd_config」の書き換え:

公開鍵認証を許可し、パスワードログインを禁止します:

$ sudo nano /etc/ssh/sshd_config
(1). 公開鍵認証を許可(コメント行を解除):
PubkeyAuthentication yes

-

(2). パスワードでのログインを禁止:
PasswordAuthentication no

-


5). ssh 設定ファイルの変更:

★1: Port をデフォルトの 22 番から別の番号に変更。番号は 1024 〜 65535 までの任意の数値
★2: PermitRootLogin を prohibit-password から no に変更
★3: PasswordAuthentication が yes になっている場合は no に変更

$ cat /etc/ssh/sshd_config
# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
- Port 22     ←★1
+ Port 2222
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
- PermitRootLogin prohibit-password     ←★2
+ PermitRootLogin no
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
- #PasswordAuthentication yes     ←★3
+ PasswordAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----

16. 参考: もし、PC のディスクに余裕がない場合:

-

1). 「仮想マシン」を一度、削除:

$ cd ~/ダウンロード/vm/ubn2204
$ vagrant destroy
    default: Are you sure you want to destroy the 'default' VM? [y/N] 

→「y」

-

2). それでも足りなければ、「Box」ファイルを削除:

$ vagrant box list

→「Box」名を確認:

$ vagrant box remove generic/ubuntu2204

-

-


まとめ

前回は、(学習を兼ねて)「OpenBox」等のベースになる、デスクトップ環境なしの「仮想マシン」を作り、 インストール直後の「仮想マシン」で、「Vagrant」の「Box」ファイルを作成しました。

-

今回は、その作成した「Box」を使って、

Vagrant」の「Box」に公開時に推奨される(ssh 接続等の)設定を加えて、再度「Box」ファイルを作成しました。

-

「日本語キーボード」に設定したのは正解で、設定時の工数が削減できました。

-

次回は、その作成した「Box」(Endeav-base-jp) を使って、コミュニティ版の「OpenBox」をインストールする予定です。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-