Linux あれこれ

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

Flatpak 版のBoxes に「Rocky Linux 9.0」をインストール: 「共有フォルダ」の作成をスクリプト化〈H155-4〉

登録日: 2022-08-14 更新日: 2022-08-16

前回、Flatpak 版の「Boxes」にて、「Rocky Linux 9.0」のXfce デスクトップをインストールしました。

「Rocky Linux 9.0」で、Boxes の「共有フォルダ」機能を使うには、Xfce のインストール前に「spice-webdavd」パッケージを rpm でインストールしておく必要がありました。

-

「Rocky Linux 9.0」のインストール完了後、まだGUI が使えない「コンソール画面」で行うので、 キー入力の手間を減らすため、「scp」コマンドを使ってスクリプトを転送してみました。

その備忘録です。

-

-

使用したPC は「ASUS Chromebox CN60 」で、プロセッサは第4世代の「Intel Celeron 2955U 」です。

UEFI 立ち上げ」のPC です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

参考:

  1. 「ssh 接続」について:

  2. Boxes で「ssh 接続」する場合:

  3. 「scp」コマンドについて:

-

前回の作業:

Boxes に「Rocky Linux 9.0」をインストール〈H155-3〉

共有フォルダ:

-

今回の作業:

  1. 先頭から:

  2. 「scp」コマンドを使って、キー入力の手間を減らした手順:

  3. すでに、「Xfce」や「GNOME」などのGUI をインストールしていた場合:

  4. ボックスの「Rocky Linux 9.0」で、「ssh 接続」ができるかの確認:

  5. ボックスの「Rocky Linux 9.0」で、「scp」コマンドが使えるか確認:

  6. ホストOS の「Xubuntu 20.04.4 LTS」で、「ssh 接続」ができるかの確認:

  7. 2つのスクリプトを作成:

  8. 「Rocky Linux 9.0」にて、「scp」コマンドでスクリプトを転送:

-

「まとめ へ」

-

「目次詳細 へ」

-

-


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

「Rocky Linux 9.0」のXfce デスクトップ画面:

-

→画面を広く使えるように、ドックパネルは右に移動しました。

-

  • 画面解像度がうまく調整されないときは、「ウィンドウを最大化→戻す」または「ログアウト→ログイン」すると、再描画されます。

-

-


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

「Boxes」について:

-

公式サイト:

GNOME Boxes

-

  • 「Boxes」は GNOME アプリケーションのひとつで、「仮想マシン」を動かす環境としては、
     シンプルで、簡単にゲストOS (ボックス)を作成できます。

  • 実機(ホストOS)へのインストールが必要です。

-

-


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

「Rocky Linux」について:

-

公式サイト:

https://rockylinux.org/

-

抜粋:

Rocky Linux は、「Red Hat Enterprise Linux」と「バグごと100% の互換性」があるように設計されたオープンソースオペレーティングシステムです。コミュニティによって開発されています。

-

  • Rocky Linux 9.0 のサポート(2022年7月14日)

-

-


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

2022-08-14 現在

カーネル:

$ uname -r
5.14.0-70.17.1.el9_0.x86_64

→サーバー利用が前提ですが、カーネルは一般的な Linux ディストリビューションよりも少し遅れているぐらいです。

-

リリース:

$ cat /etc/rocky-release
Rocky Linux release 9.0 (Blue Onyx)

-

-


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

1 〜 3. 「Rocky Linux 9.0」をインストールする手順:

-

前回の作業:

-


項番 1. 仮想マシン環境(ボックス)の作成:

-


項番 2. 「Rocky Linux 9.0」のインストール:

-


項番 3. インストール完了後の最初の再起動:

-

ここまでで、「Rocky Linux 9.0」のインストールが完了。

-


項番 4. GUI を使えるようにしました:

→こちらの作業の途中から、作業するので、

項番「4. GUI を使えるようにしました:」を頭から記述して、迷わないようにしました。

-

-


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

4. GUI を使えるようにしました:

-

1). 「Rocky Linux 9.0」を起動:

-

2). カーネル選択メニュー:

→新しいカーネルが選ばれています。

そのまま待つか、Enter

-

3). ログイン画面:

設定した「ユーザ名」を入力

ubn-box login: ubn
Password:

→「パスワード」を入力

-

4). epel リポジトリを追加:

$ sudo dnf install epel-release
:
Installing:
 epel-release          noarch          9-2.el9            extras

-

「epel-release」をインストールすることで、epel リポジトリが自動的に登録されます。

インストール途中で、GPG-KEY のインストールを聞いてきます。 →「y」

-

5). 追加されたリポジトリを確認:

$ dnf repolist epel
repo id          repo name                                       status
epel             Extra Packages for Enterprise Linux 9 - x86_64  enabled

→デフォルトで「enabled」(有効)になっていることに注目

-

システム更新:
$ sudo dnf update

-

→システム更新で「epel-release」が更新されました:

$ dnf list epel-release
:
インストール済みパッケージ
epel-release.noarch             9-2.el9              @extras
利用可能なパッケージ
epel-release.noarch             9-3.el9              epel 

$ dnf list epel-release
:
インストール済みパッケージ
epel-release.noarch              9-3.el9               @epel

リポジトリが「extras」から「epel」に変わっていることに注目。

「extras」にあるのはトリガーということ。

-

-

(ここから、「共有フォルダ」の作成をスクリプト化 する作業です):

-

-


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

5. 「scp」コマンドを使って、キー入力の手間を減らした手順

-


★ Boxes の「共有フォルダ」機能を使うときは、「spice-webdavd」パッケージをインストールします:

  • Boxes の「共有フォルダ」機能を使わないときは、こちらの作業は要りません。「項番 13 」に進んでください。

-

基本的なツールをインストール:

$ sudo dnf install wget

-

-


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

6. すでに、「Xfce」や「GNOME」などのGUI をインストールしていた場合:

-

Xfce」や「GNOME」などのGUI を、まだインストールしていなければ、要らない作業です。 次の項番へ:

-

Boxes の「共有フォルダ」機能を使うときは、「Xfce」や「GNOME」がインストールを邪魔するので、いったん、削除する必要があります。

削除したくないときは、「共有フォルダ」機能は使えません。「項番 13 」に進んでください。

-

1). 作業フォルダを準備:

$ mkdir -p ~/rpm

-

2). 「~/rpm/」に rpm をダウンロードするための「load-rpm.sh」スクリプトを作成:

こちら 」を参照:

-

3). 「spice-webdavd」パッケージを rpm でインストールするための、「install-rpm.sh」スクリプトを作成:

こちら 」を参照:

-

4). ログアウト:

-

5). ログイン画面で、Boxes ウィンドウの右上の「a」にて、Ctrl+Alt+F2 で「コンソール画面」に切り替え:

ubn-box login:

→ユーザ名を入力

→パスワードを入力

-

[ubn@ubn-box ~]$

→「コンソール画面」では、日本語表示も日本語入力もできません。

-

6). 操作注意:(準備ができたら)下記を実行して、依存を削除:

$ sudo dnf remove avahi avahi-glib avahi-libs

→貼付けできないので、キー入力が必要です。

→警告: 依存により、使っている「Xfce」や「GNOME」、インストールしたアプリや入力メソッドが削除されます

-

7). 事前に「~/rpm/」に 2つのスクリプトを準備できた場合は、「こちら 」に進んでください

-

8). 事前に「~/rpm/」に スクリプトを準備できなかった場合は、「項番 7」に進んでください

-

-


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

7. コンソール画面で、キー入力を楽にするための準備:

-

(前回の投稿の、前半部分)の続きになります。

-

ssh 接続」ができれば使える、「scp」コマンドを使い、キー入力の手間を減らしました:

ホストOS で準備した「spice-webdavd」をインストールする「スクリプト」をゲストOS に転送。 実行するだけなので、キー入力の手間が減りました。

-

ホストOS は本番で使うので、別のゲストOS(Ubuntu 22.04 LTS)から転送しようとしたら、ダメでした。

わかったことは、ゲストOS とゲストOS 間では ssh 接続できません。ホストOS とゲストOS 間でのみ ssh 接続できます。

-

-


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

8. ボックスの「Rocky Linux 9.0」で、「ssh 接続」ができるかの確認:

-

こちらの項番の確認は、自分がすでに確認しているので、眺めるだけでいいかも。

ただし、現在の「IP アドレス」は確認しておく必要があります。

-

1). 「ssh サーバー」がインストールされているかの確認:

$ dnf list *ssh* --installed
:
インストール済みパッケージ
libssh.x86_64                    0.9.6-3.el9           @minimal  
libssh-config.noarch             0.9.6-3.el9           @minimal  
openssh.x86_64                   8.7p1-8.el9           @minimal  
openssh-clients.x86_64           8.7p1-8.el9           @minimal  
openssh-server.x86_64            8.7p1-8.el9           @minimal  ←(注目)

-

3). ゲスト自身の現在の「IP アドレス」を確認:

$ ip a

または、

$ ip addr show

→「2:」の enp1s0 にある「inet」のアドレスを見ると、現在の「IP アドレス」は、「10.0.2.15」でした。

ただし、dhcp を使っているので、ゲストを起動し直すたびに変わる可能性があります。その都度、確認が必要です。

-

4). ゲストで自分自身に ssh でログイン

ここでは、自分のユーザ名@現在の自分のPC の「IP アドレス」

-

$ ssh ubn@10.0.2.15
:
The authenticity of host '10.0.2.15 (10.0.2.15)' can't be established.
ED.........
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

→「yes」で続行

:
ubn@10.0.2.15's password:                    ←(パスワード入力)
Last login: Fri Aug 12 18:32:45 2022
[ubn@ubn-box ~]$ 

ssh 接続できましたが、自分で、自分にログインしているので、プロンプトが変わらず、ログインしているのがわかりません。

-

5). ssh に接続中のユーザ名、IP アドレスを表示:

$ w -i
 18:57:57 up 25 min,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
ubn      :0       :0               18:32   ?xdm?  20.89s  0.01s /usr/li
ubn      pts/1    10.0.2.15        18:50    4.00s  0.02s  0.01s w -i

-

6). ssh 接続の終了:

$ exit
ログアウト
Connection to 10.0.2.15 closed.

-

-


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

9. ボックスの「Rocky Linux 9.0」で、「scp」コマンドが使えるか確認:

-

2). 作業フォルダを準備:

$ mkdir -p ~/rpm

-

3). 転送テスト用のファイルを準備:

$ cd ~/rpm/
$ pwd
/home/ubn/rpm

-

「test.txt」ファイルの作成:
$ touch test.txt

$ ls
test.txt

-

4). scp コマンドで、自分のファイルを自分のPC にコピー:

$ scp test.txt ubn@10.0.2.15:/home/ubn/rpm/test2.txt
:
ubn@10.0.2.15's password: 
test.txt                       100%    0     0.0KB/s   00:00

→どこに送ったかでなく、どれを送ったかなので、わかりづらいですね。

-

5). scp で、コピーできたか確認:

$ ls -1
test2.txt
test.txt

「-1」はイチです。

-

6). ボックスの「Rocky Linux 9.0」は起動したままにして、ホストOS で操作します

-

-


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

10. ホストOS の「Xubuntu 20.04.4 LTS」で、「ssh 接続」ができるかの確認:

-

「項番 10」の ssh 接続の確認と、「項番 11」の「~/rpm」フォルダに「load-rpm.sh」と「install-rpm.sh」を作成する作業は、事前に済ませておくと良いです。後は、IP アドレスを確認するだけにできます。

-

1). ホストOS の現在の「IP アドレス」を確認: ←(その都度確認必要)

端末を起動して、

$ ip addr show

または、

$ ip a
:
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xxx.............f:ff
    inet 192.168.1.15/24 brd 192.168.1.255 scope global dynamic noprefixroute enp1s0
:

→「2:」の enp1s0 のアドレスを見ると、現在の「IP アドレス」は、「192.168.1.15」でした。

DHCP なので、起動のたびに確認が必要です。

-

2). SSH サーバーが、インストールされているかの確認:

$ apt list openssh-server
:
openssh-server/focal-updates 1:8.2p1-4ubuntu0.5 amd64
→「Xubuntu 22.04 LTS」には、SSH サーバーの「openssh-server」はインストールされていません

-

3). インストール:

$ sudo apt install openssh-server
:
以下のパッケージが新たにインストールされます:
  ncurses-term openssh-server openssh-sftp-server
  ssh-import-id

-

4). ssh の接続テスト:

$ ssh ubn@192.168.1.15
:
The authenticity of host '192.168.1.15(192.168.1.15)' can't be established.
ED123xx key fingerprint is SHA256:xx…xxxxxxxxxxxx.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

→「yes」で接続を続行
→パスワード入力

-

[ubn@ubn-box ~]$ 

→自分自身に ssh でログインしたので、プロンプトで確認できません。

-

9). ssh でログインしているか確認:

$ w -i
 22:29:41 up 24 min,  2 users,  load average: 0.00, 0.02, 0.12
USER   TTY    FROM           LOGIN@   IDLE   JCPU   PCPU WHAT
ubn    :0     :0             22:08   ?xdm?   1:33   0.01s /usr/libexec/gd
ubn    pts/1  192.168.1.15   22:25   4.00s  0.05s  0.01s w -i   ←(注目)

→ユーザ名「ubn」、IP アドレス「192.168.1.15」、ポート番号はデフォルトの「22」で接続中

-

10). ssh 接続の終了:

[ubn@ubn-box]$ exit
ログアウト
Connection to 192.168.1.15 closed.

ssh 接続できる状態か確認できました。これで「scp」コマンドが使えます。

-

-


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

11. 転送するための、2つのスクリプトを作成:

-

1). 作業フォルダを準備:

$ mkdir -p ~/rpm

-

2-1). 「rpm ファイルをダウンロードする」シェルスクリプトはすでに作成しています:

「rpm」ファイルを自動保存するスクリプトを作成: を参照:

-

上記を使ってもいいのですが、

「共有フォルダ」のインストール専用のスクリプトを下記に準備しました:

-

2-2). 「共有フォルダ」のための、rpm ファイルをダウンロードする、シェルスクリプトを作成:

エディタは mousepad でも featherpad でも使えるものでいいです。

$ cd ~/rpm/
$ gedit ~/rpm/load-rpm.sh

↓ 下記をすべて貼り付けてください:

#!/bin/bash
echo 
echo "----------------"
echo "RHEL 9.0 クローン OS に、「spice-webdavd」パッケージをインストールするための、rpm ファイルを「~/rpm」フォルダにダウンロードします:"
echo 'On the RHEL 9.0 clone OS, download the rpm file for installing the "spice-webdavd" package to the "~/rpm" directory:'
echo 
echo "よろしいですか ? "
read -p 'Is it OK ? (y/N): ' yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
echo 
cd ~/rpm/
wget https://rpmfind.net/linux/fedora/linux/releases/34/Everything/x86_64/os/Packages/a/avahi-0.8-9.fc34.x86_64.rpm
wget https://rpmfind.net/linux/fedora/linux/releases/34/Everything/x86_64/os/Packages/a/avahi-gobject-0.8-9.fc34.x86_64.rpm
wget https://rpmfind.net/linux/fedora/linux/releases/34/Everything/x86_64/os/Packages/a/avahi-libs-0.8-9.fc34.x86_64.rpm
wget https://www.rpmfind.net/linux/fedora/linux/releases/34/Everything/x86_64/os/Packages/a/avahi-glib-0.8-9.fc34.x86_64.rpm
wget https://www.rpmfind.net/linux/fedora/linux/releases/34/Everything/x86_64/os/Packages/l/libevent-2.1.12-3.fc34.x86_64.rpm
wget https://rpmfind.net/linux/fedora/linux/releases/34/Everything/x86_64/os/Packages/s/spice-webdavd-2.5-3.fc34.x86_64.rpm
echo 
echo "----------------"
echo 
echo "< Download list >"
echo 
ls -1
echo 
echo "----------------"
echo "(complete):"
echo 

→ファイルの最後で改行しておきます。

-

3). 「共有フォルダ」を使うための、rpm ファイルをインストールする、シェルスクリプトを作成:

$ cd ~/rpm/
$ gedit ~/rpm/install-rpm.sh

↓ 下記をすべて貼り付けてください:

#!/bin/bash
echo 
echo "----------------"
echo "RHEL 9.0 クローン OS に、「spice-webdavd」パッケージをインストールして、「共有フォルダー」を使用できるようにします:"
echo 'On the RHEL 9.0 clone OS, install the "spice-webdavd" package so that you can use the "shared folder":'
echo 
echo "よろしいですか ? "
read -p 'Is it OK ? (y/N): ' yn
case "$yn" in [yY]*) ;; *) echo "abort." ; exit ;; esac
echo 
cd ~/rpm/
sudo echo 
sudo dnf install -y compat-openssl11
sudo rpm -ivh libevent-2.1.12-3.fc34.x86_64.rpm
sudo rpm -ivh avahi-libs-0.8-9.fc34.x86_64.rpm
sudo rpm -ivh avahi-glib-0.8-9.fc34.x86_64.rpm
sudo rpm -ivh avahi-gobject-0.8-9.fc34.x86_64.rpm
sudo rpm -ivh avahi-0.8-9.fc34.x86_64.rpm
sudo rpm -ivh spice-webdavd-2.5-3.fc34.x86_64.rpm
echo 
echo "----------------"
echo 
cd
dnf list spice* --installed
echo 
echo "----------------"
echo "(complete):"
echo 

→ファイルの最後で改行しておきます。

-

4). 確認:

$ ls -1 ~/rpm/
:
install-rpm.sh
load-rpm.sh

→準備完了。

-

-


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

12. 「Rocky Linux 9.0」にて、「scp」コマンドでコピー:

-


1). 事前の確認:

$ cd ~/rpm/
$ ls -1
test2.txt
test.txt

-


2). scp でコピー:

$ scp ubn@192.168.1.15:/home/ubn/rpm/load-rpm.sh ./

「./」ピリオドがあります。注意。

-

→「yes」
→パスワード入力

:
Client_global_hostkeys_private_confirm: server gave bad signature for RSA key 0: error in libcrypto

→無視

-

$ scp ubn@192.168.1.15:/home/ubn/rpm/install-rpm.sh ./

→パスワード入力

:
Client_global_hostkeys_private_confirm: server gave bad signature for RSA key 0: error in libcrypto

→無視

-


3). コピーされたか確認:

$ pwd
/home/ubn/rpm

$ ls -1
:
install-rpm.sh
load-rpm.sh
test2.txt
test.txt

→テストで使ったファイルが残っています。

-

$ rm *.txt
$ ls
install-rpm.sh  load-rpm.sh

-


4). 「load-rpm.sh」スクリプトを実行:

$ pwd
/home/ubn/rpm

$ ls
install-rpm.sh  load-rpm.sh

$ bash load-rpm.sh

-


5). ダウンロードされたファイルの一覧を tree で確認:

$ tree
:
├── avahi-0.8-9.fc34.x86_64.rpm 
├── avahi-glib-0.8-9.fc34.x86_64.rpm  
├── avahi-gobject-0.8-9.fc34.x86_64.rpm 
├── avahi-libs-0.8-9.fc34.x86_64.rpm  
├── install-rpm.sh                           ←(スクリプト)
├── libevent-2.1.12-3.fc34.x86_64.rpm   
├── load-rpm.sh                            ←(スクリプト)
└── spice-webdavd-2.5-3.fc34.x86_64.rpm

0 directories, 8 files

→「~/rpm/」に rpm ファイルがダウンロードされました。ファイルが 8個あることを確認。

-


6). 「install-rpm.sh」スクリプトを実行:

$ pwd
/home/ubn/rpm

$ ls *.sh
install-rpm.sh  load-rpm.sh

$ bash install-rpm.sh

→「spice-webdavd」パッケージがインストールされました。

-

-


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

13. 項番「7). Xfce デスクトップのインストール:」に戻ります:

-

前の投稿の 項番 「7). Xfce デスクトップのインストール:」 に戻って、続きの作業を行います。

-

(こちらの手順は、ここまで。)

-

-


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

14. 後始末:

-

現在、ホストOS の「Xubuntu 20.04.4 LTS」で、「ssh 接続」ができるようになっているので、

セキュリティを強化する設定を行うか、「ssh 接続」を使わないのなら「openssh-server」を削除します。

-

自分は削除しました:

$ sudo apt remove openssh-server
:
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  ncurses-term openssh-sftp-server ssh-import-id
これを削除するには 'sudo apt autoremove' を利用してください。

$ sudo apt autoremove

-

-


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

参考 1. 「ssh 接続」について

-

1). リモート側に、「ssh サーバー」がインストールされている必要があります:

-

Fedora 系:
$ dnf list *ssh* --installed
インストール済みパッケージ
libssh.x86_64                    0.9.6-3.el9           @minimal  
libssh-config.noarch             0.9.6-3.el9           @minimal  
openssh.x86_64                   8.7p1-8.el9           @minimal  
openssh-clients.x86_64           8.7p1-8.el9           @minimal  
openssh-server.x86_64            8.7p1-8.el9           @minimal  ←(注目)

-

Ubuntu 系:
$ apt list *ssh* | grep インストール済み
:
libssh-4/focal-updates,focal-security,now 0.9.3-2ubuntu2.2 amd64 [インストール済み、自動]
libssh-gcrypt-4/focal-updates,focal-security,now 0.9.3-2ubuntu2.2 amd64 [インストール済み、自動]
libssh2-1/focal,now 1.8.0-2.1build1 amd64 [インストール済み、自動]
openssh-client/focal-updates,now 1:8.2p1-4ubuntu0.5 amd64 [インストール済み、自動]

→「openssh-client」はインストールされていますが、「ssh サーバー」が見当たりません。

-

ssh サーバー」の確認:

apt list openssh-server
:
openssh-server/focal-updates 1:8.2p1-4ubuntu0.5 amd64

SSH サーバーの「openssh-server」はインストールされていません。

-

2). 「ssh サーバー」がない状態で、ssh 接続してみると:

$ ssh ubn@192.168.1.15
ssh: connect to host 192.168.1.15 port 22: Connection refused

→当然ながら、接続が拒否されましたが、「ssh」コマンドは使えていることに注目。

-

ssh サーバー」がインストールされていても、ポート指定が違っても失敗します。

-

ssh (scp)で使われる、デフォルトのポート番号は「22」ですが、

セキュリティ強化のために変更されている場合は「-p」でポート番号を指定しないと接続に失敗します。

-

3). インストール:

$ sudo apt install openssh-server
:
以下のパッケージが新たにインストールされます:
  ncurses-term openssh-server openssh-sftp-server ssh-import-id

→今回は行いませんが、本来は、インストール後すぐに、セキュリティを強化するための設定が必要です。

-

4). 参考: セキュリティを強化する手順:

参考:

Ubuntu 20.04 LTS に SSH Server(openssh-server)を導入しよう

-

5). 「ssh 接続」するには、4つの情報が必要です:

  • サーバーアドレス(IPアドレス
  • ユーザー名(FTPのユーザー名)
  • パスワード(FTPのパスワード)
  • ポート

-

6). 自分自身の「IP アドレス」を確認:

$ ip a

→「ip addr show」の略です。

→「2:」の enp1s0 にある「inet」のアドレスを確認しました。

普通は、dhcp の設定なので、起動のたびに変わるかもしれません。なので、その都度、確認が必要です。

-

7). まずは、自分自身の「IP アドレス」に、「ssh 接続」(ログイン)ができるか確認:

-

(1). ssh 接続に、初めて成功したとき:
$ ssh ubn@192.168.1.15
:
The authenticity of host '192.168.1.15(192.168.1.15)' can't be established.
ED123xx key fingerprint is SHA256:xx…xxxxxxxxxxxx.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

→「yes」で接続を続行

-

応答に遅れてタイムアウトすると、下記の表示になるので、やり直し:

ssh_dispatch_run_fatal: Connection to 192.168.1.15 port 22: Broken pipe

-

(2). 2度目以降の ssh 接続:
$ ssh ubn@192.168.1.15
ubn@192.168.1.15's password:       ←(パスワード入力)
Last login: Fri Aug 12 18:32:45 2022
[ubn@ubn-box ~]$               ←(プロンプトが変わります)

→自分自身に「ssh 接続」したので、プロンプトに変化はありません。

うまく接続されているのか、わからないので、下記のコマンドで確認。

-

8). 「ssh 接続」していれば、「ユーザ名」と「IP アドレス」を確認できます:

$ w -i
 18:57:57 up 25 min,  2 users,  load average: 0.00, 0.00, 0.00
USER   TTY    FROM           LOGIN@   IDLE   JCPU   PCPU WHAT
ubn    :0     :0             18:32   ?xdm?  20.89s  0.01s /usr/li
ubn    pts/1  192.168.1.15   18:50    4.00s  0.02s  0.01s w -i    ←(注目)

-

9). 接続できないときは、接続したい相手の「IP アドレス」で、ping が通るか確認:

$ ping 192.168.1.15
PING 192.168.1.15 (192.168.1.15) 56(84) bytes of data.
64 bytes from 192.168.1.15: icmp_seq=1 ttl=64 time=0.067 ms
64 bytes from 192.168.1.15: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from 192.168.1.15: icmp_seq=3 ttl=64 time=0.064 ms
^C         ←(Ctrl+C で中断)
--- 192.168.1.15 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3073ms
rtt min/avg/max/mdev = 0.064/0.068/0.076/0.004 ms

→そのままだと、ネットワークの負荷になります。

迷惑なので、すぐに、Ctrl+C で中断しました。

-

10). ssh 接続の終了:

$ exit
ログアウト
Connection to 192.168.1.15 closed.

-

11). ssh 接続を終了していても、「scp」コマンドは使えます

-

-


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

参考 2. Boxes で「ssh 接続」する場合:

-

調べてわかったこと:

-

(1). 「Ubuntu 22.04 LTS」で ssh 接続するには、「openssh-server」のインストールが必要です。

-

(2). 「Ubuntu 22.04 LTS」には、SSH サーバーの「openssh-server」はインストールされていません

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

-

(3). 「Rocky Linux 9.0」には、「openssh-server」がインストールされていて、すぐに「ssh 接続」できました

-

(4). Boxes では、どのゲストOS も、同じ「IP アドレス」になります

Boxes では、左上の「←」ボタンを使い、ボックスの切り替えや起動ができます。

同時にボックスを動作させれば「dhcp」なので値が変わるのかと期待していたら、変わりません。

→たぶん、ボックスは同時動作ではなく、裏側の片方のボックスは「停止状態」になる、と思われます。

-

(5). 片方のゲストOS を手動で、別の(固定)IP アドレスに変えても、ping が通りません。

ボックスの片方は「停止状態」になるとすれば、当然です。

-

参考:

Ubuntu 20.04 LTS 固定IPアドレス設定「デスクトップ編」

-

(6). つまり、ゲストOS 間の ssh 接続はできず、scp コマンドによるファイル転送も使えません。

-

(7). Ubuntu 22.04 LTS では、ssh 接続のアドレスとして、「IP アドレス」だけでなく、「ホスト名.local」 が使えます:

デフォルトで「mDNS」(マルチキャストDNS )が有効です。

ssh 接続する場合、dhcp だと、毎回「IP アドレス」が変っていないか確認したり、手動で固定の「IP アドレス」に変更する必要がありましたが、これが使えると「IP アドレス」が変更されても、毎回同じ値が使えます。

「IP アドレス」ではなく、ホスト名を変更すれば OK

-

(8). 「Rocky Linux 9.0」では、「ホスト名.local」はリモートのアドレスとして認識できず使えません。

→「Avahi」として実装されているみたい。今回の作業でインストールされるので、作業後は状況が変わるかも。

-

(9). Ubuntu であれば、ホスト名(コンピュータ名)の変更は GUI なので簡単です:

設定 →「このシステムについて」

バイス名: ubn-box

右の「>」をクリック

「ubn-box」→「ubn-box2」に変更

-

(10). 今のところ、Boxes では、「ホストOS」と「ゲストOS」の間だけで、「ssh 接続」ができます

→重要。

-

-


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

参考 3. 「scp」コマンドについて:

-

ssh にログイン(ssh 接続)していなくても、ファイルのコピーができます。

-

1). scp コマンドの使い方:

$ scp [コピー元のファイル] [コピー先のファイル]

-

2). scp のオプション:

-i 鍵ファイル   ssh接続に使用する鍵ファイルを指定
 SSH バージョン1 は、~/.ssh/identity
 SSH バージョン2 は、~/.ssh/id_rsa と ~/.ssh/id_dsa

-P ポート番号  (sshのポートを変更している場合などに)接続に使用するポートを指定
-p  コピー元の更新時間やパーミッションを保持
-r  ディレクトリごと再帰的にコピー
-1  SSHのプロトコルバージョン1を使用
-2  SSHのプロトコルバージョン2を使用
-4  IPv4を使用
-6  IPv6を使用

-

3). パスの記述のしかた:

リモート先の場合、ファイルの先頭に [ユーザー名]@[IPアドレス]: を付けます。

この「ユーザ名とIPアドレス」は、ssh のユーザ認証で使われます。

ローカルの場合は、[ユーザ名@サーバのホスト名(か、IP アドレス)]: の部分を省略できます。

-

4). 操作例:

-

(1). 自分のPC にある test.txt ファイルを、相手(リモート)のPC [192.168.1.15] にコピー:
$ scp test.txt ubn@192.168.1.15:/home/ubn/test.txt

-

(2). 相手(リモート)にあるファイルを自分のPC のカレントディレクトリにコピーする場合
$ scp ubn@192.168.1.15:/home/ubn/test.txt ./

-

-


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

参考 4. Boxes での、ネットワーク接続について

-

qemu は標準で、以下のような形態でネットワーク接続します:

 +--------+                +---------------+        +-------+
 |ゲスト OS|--------------->|ファイヤーウォール|------->|ホストOS| ---> internet
 |        | (qemu内仮想LAN) |               |        |       |
 +--------+                +---------------+        +-------+
 10.0.2.15                 10.0.2.2 = ルーター       192.168.1.15 (今回の例)
                                    = DHCPサーバー
                           10.0.2.3 = DNSサーバー
                           10.0.2.4 = SMBサーバー

qemu では標準では外部からの通信を受け付けません。

そのため動かすのにユーザー特権が要らないメリットがあるのですが、デメリットの方を逆手にとって “ファイヤーウォール”と称しています。

※ なお、この “ファイヤーウォール” は TCP/UDP のパケットしか通しませんので ping (=ICMP) は通しません。

-

参考:

Qemuで遊ぼうのこーなー から抜粋:

-

-


まとめ

Boxes に「Rocky Linux 9.0」をインストールするときのポイントは、バージョンの整合がとれないので、「共有フォルダ」に使う「spice-webdavd」を GUI を立ち上げる前にインストールすることです。

-

今回は、「scp」コマンドを使って、ホストOS よりスクリプトを転送してくることで、入力の手間を減らしました。

逆に、「scp」コマンドを使えるようにする手間が増えたかも。 でも、作業自体は楽になったと思います。

-

これなら、GUI の環境を持たないディストリビューションで、スクリプトを使ったインストールができそうな気がします。

-

-

「Boxes」で問題が少ない、オススメのインストール:

  • ISO イメージを指定して、ボックスを作成します
  • 「かんたんインストール」はオフ。すぐに「次へ」をクリック
  • UEFI オン」に設定して、インストール
  • EFI パーティション」を忘れずに作成
  • X11 セッション (Xfce セッション) で使用

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-