登録日: 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 です。
-
(注)リンクを戻るときはブラウザの左上の「←」をクリック
-
-
目次
-
参考:
-
前回の作業:
Boxes に「Rocky Linux 9.0」をインストール〈H155-3〉
-
今回の作業:
-
-
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - -
「Rocky Linux 9.0」のXfce デスクトップ画面:
-
→画面を広く使えるように、ドックパネルは右に移動しました。
-
- 画面解像度がうまく調整されないときは、「ウィンドウを最大化→戻す」または「ログアウト→ログイン」すると、再描画されます。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --
「Boxes」について:
-
公式サイト:
-
「Boxes」は GNOME アプリケーションのひとつで、「仮想マシン」を動かす環境としては、
シンプルで、簡単にゲストOS (ボックス)を作成できます。実機(ホストOS)へのインストールが必要です。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - ---
「Rocky Linux」について:
-
公式サイト:
-
抜粋:
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」をインストールする手順:
-
前回の作業:
-
-
項番 2. 「Rocky Linux 9.0」のインストール:
-
-
ここまでで、「Rocky Linux 9.0」のインストールが完了。
-
→こちらの作業の途中から、作業するので、
項番「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つの情報が必要です:
-
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」で問題が少ない、オススメのインストール:
-
-
-
-
-
目次
-
-
- 目次
- --- - --- - --- - --- - --- - --- - --- - --- - --- - -
- 「Rocky Linux 9.0」のXfce デスクトップ画面:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --
- 「Boxes」について:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ---
- 「Rocky Linux」について:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----
- 1 〜 3. 「Rocky Linux 9.0」をインストールする手順:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - -----
- 4. GUI を使えるようにしました:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- -
- 5. 「scp」コマンドを使って、キー入力の手間を減らした手順
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- --
- 6. すでに、「Xfce」や「GNOME」などのGUI をインストールしていた場合:
- 1). 作業フォルダを準備:
- 2). 「~/rpm/」に rpm をダウンロードするための「load-rpm.sh」スクリプトを作成:
- 3). 「spice-webdavd」パッケージを rpm でインストールするための、「install-rpm.sh」スクリプトを作成:
- 4). ログアウト:
- 5). ログイン画面で、Boxes ウィンドウの右上の「a」にて、Ctrl+Alt+F2 で「コンソール画面」に切り替え:
- 6). 操作注意:(準備ができたら)下記を実行して、依存を削除:
- 7). 事前に「~/rpm/」に 2つのスクリプトを準備できた場合は、「こちら 」に進んでください
- 8). 事前に「~/rpm/」に スクリプトを準備できなかった場合は、「項番 7」に進んでください
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ---
- 7. コンソール画面で、キー入力を楽にするための準備:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----
- 8. ボックスの「Rocky Linux 9.0」で、「ssh 接続」ができるかの確認:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- -----
- 9. ボックスの「Rocky Linux 9.0」で、「scp」コマンドが使えるか確認:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -
- 10. ホストOS の「Xubuntu 20.04.4 LTS」で、「ssh 接続」ができるかの確認:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- --
- 11. 転送するための、2つのスクリプトを作成:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ---
- 12. 「Rocky Linux 9.0」にて、「scp」コマンドでコピー:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----
- 13. 項番「7). Xfce デスクトップのインストール:」に戻ります:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -----
- 14. 後始末:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -
- 参考 1. 「ssh 接続」について
- 1). リモート側に、「ssh サーバー」がインストールされている必要があります:
- 2). 「ssh サーバー」がない状態で、ssh 接続してみると:
- 3). インストール:
- 4). 参考: セキュリティを強化する手順:
- 5). 「ssh 接続」するには、4つの情報が必要です:
- 6). 自分自身の「IP アドレス」を確認:
- 7). まずは、自分自身の「IP アドレス」に、「ssh 接続」(ログイン)ができるか確認:
- 8). 「ssh 接続」していれば、「ユーザ名」と「IP アドレス」を確認できます:
- 9). 接続できないときは、接続したい相手の「IP アドレス」で、ping が通るか確認:
- 10). ssh 接続の終了:
- 11). ssh 接続を終了していても、「scp」コマンドは使えます
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- --
- 参考 2. Boxes で「ssh 接続」する場合:
- 調べてわかったこと:
- (1). 「Ubuntu 22.04 LTS」で ssh 接続するには、「openssh-server」のインストールが必要です。
- (2). 「Ubuntu 22.04 LTS」には、SSH サーバーの「openssh-server」はインストールされていません
- (3). 「Rocky Linux 9.0」には、「openssh-server」がインストールされていて、すぐに「ssh 接続」できました
- (4). Boxes では、どのゲストOS も、同じ「IP アドレス」になります
- (5). 片方のゲストOS を手動で、別の(固定)IP アドレスに変えても、ping が通りません。
- (6). つまり、ゲストOS 間の ssh 接続はできず、scp コマンドによるファイル転送も使えません。
- (7). Ubuntu 22.04 LTS では、ssh 接続のアドレスとして、「IP アドレス」だけでなく、「ホスト名.local」 が使えます:
- (8). 「Rocky Linux 9.0」では、「ホスト名.local」はリモートのアドレスとして認識できず使えません。
- (9). Ubuntu であれば、ホスト名(コンピュータ名)の変更は GUI なので簡単です:
- (10). 今のところ、Boxes では、「ホストOS」と「ゲストOS」の間だけで、「ssh 接続」ができます
- 調べてわかったこと:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ---
- 参考 3. 「scp」コマンドについて:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----
- 参考 4. Boxes での、ネットワーク接続について
- まとめ
- -
-
-
-