Fedora33用Vagrant Boxを作ってはみたものの

今回は、Fedora33用のVagrant Boxを作ったけど、どうもスムーズに起動しないというお話。まれによくある
samba4: Warning: Authentication failure. Retrying…
が延々とタイムアウトまで続くというケースです(”samba4″ は適当です)。

裏口からVMに入って /var/log/secure を見てみると、こんなログが延々と続いています。

userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedKeyTypes [preauth]

調べてみたところ、どうもこういうことみたいです。

openssh deprecates ssh-rsa key type: maybe update vagrant insecure key · Issue #11783 · hashicorp/vagrant
Vagrant version vagrant-2.2.9 Host operating system Fedora 31 Guest operating system Fedora Rawhide (will become Fedora ...

Vagrant の insecure_private_key と呼ばれるデフォルトのキーペアが ssh-rsa で作られているんですが、このサポートが Fedora33 ではなくなったということらしい。

PR#669: cloud vagrant: continue to support vagrant insecure rsa key - fedora-kickstarts - Pagure.io

ここの手順通りに

PubkeyAcceptedKeyTypes=+ssh-rsa

を追加してみても、やっぱりうまくいきません。

自分のスキルでは根本原因の解決は無理っぽいので、とりあえずワークアラウンド。

まず、起動時の(事実上無意味な – リトライしても絶対うまくいなかない)

samba4: Warning: Authentication failure. Retrying...

の表示を抑制するため、Vagrantfile でタイマーを短め(30秒)に設定。

config.vm.define "samba4" do |samba4|
  samba4.vm.box = "fedora33"
  samba4.vm.network "private_network", ip: "192.168.56.65"
  samba4.vm.hostname = "samba4"
  samba4.vm.boot_timeout = 30

  samba4.vm.provider "virtualbox" do |samba4|
  samba4.memory = "2048"
end

vagrant up が異常終了しても VM 自体は起動できているので、
PS> ssh vagrant@127.0.0.1 -p 2222
で入ってキーペアを手動で作成。不思議なのは
$ ssh-keygen -t rsa -b 4096 -f fedora33
くらいで作ると、Windows Terminal から
PS> ssh vagrant@127.0.0.1 -p 2222 -i fedora33
みたいにして SSH できるんだけど、この秘密鍵を PuTTYGen で ppk 形式にするとなぜか通らなくなる。もう少し先進的(?)な

$ ssh-keygen -t ecdsa -b 4096 -f fedora33

にすると PuTTY でも通るようになりました。

さらに、vagrant up が正常終了しないため、追加で設定した NIC の “private_network” の設定までたどり着かずに DHCP になってしまうようなので、手作業で NIC の設定を静的IPに変更します。

# 接続一覧の表示。「有線接続1」が private_network で設定した方。
[root@localhost ~]# nmcli con

NAME UUID TYPE DEVICE
enp0s3 a7472fa3-8b08-3068-8e6f-64cefb9a64a8 ethernet enp0s3
有線接続 1 3b6489c2-e2db-3dea-8e09-9b96e35d5e63 ethernet enp0s8
# 入力しづらい漢字の接続を削除
[root@localhost ~]# nmcli conn delete 3b6489c2-e2db-3dea-8e09-9b96e35d5e63

接続 '有線接続 1' (3b6489c2-e2db-3dea-8e09-9b96e35d5e63) が正常に削除されました。
# 改めて接続を作成。eth0 とか eth1 とかいう名前の方が混乱しなくて済むかも?
[root@localhost ~]# nmcli con add type ethernet ifname enp0s8 con-name enp0s8
接続 'enp0s8' (dac68978-5059-4b28-ac4a-7ce6563746c8) が正常に追加されました。
# 作成した接続プロファイルを静的IPに変更
[root@localhost ~]# nmcli con mod enp0s8 ipv4.method manual ipv4.address 192.168.56.65/24 ipv4.dns 8.8.8.8 ipv4.gateway 192.168.0.1 connection.autoconnect yes

[root@localhost ~]# reboot

とりあえず、これで使えるようになりました。

タイトルとURLをコピーしました