安裝Oracle Database 19c 的 VagrantBox ,非常順利,耗時(shí)如下:
real 30m36.783s
user 0m0.000s
sys 0m0.047s
前面一切順利,但是vagrant ssh和vagrant putty均不能登錄虛機(jī)。我的環(huán)境是Windows 11,Vagrant 2.4和VirtualBox 7.0。
這個(gè)錯(cuò)誤肯定是和ssh相關(guān)的,以下命令顯示了vagrant中ssh的配置。其中IdentityFile就是私鑰文件:
$ vagrant ssh-config
Host oracle-19c-vagrant
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile C:/Users/****/Desktop/WORKSPACE/vagrant-projects/OracleDatabase/19.3.0/.vagrant/machines/oracle-19c-vagrant/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
PubkeyAcceptedKeyTypes +ssh-rsa
HostKeyAlgorithms +ssh-rsa
利用上面的信息,就可以用ssh直接登錄來(lái)測(cè)試了。
vagrant ssh不能登錄虛機(jī)
$ vagrant ssh
vagrant@127.0.0.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
沒(méi)有權(quán)限這個(gè)報(bào)錯(cuò)真是太抽象了,誤導(dǎo)了我很長(zhǎng)時(shí)間。
如果用ssh直接登錄,錯(cuò)誤類似,但會(huì)多一個(gè)Load key的信息:
$ ssh -l vagrant -p 2222 -i "C:/Users/XiaoYu/Desktop/WORKSPACE/vagrant-projects/OracleDatabase/19.3.0/.vagrant/machines/oracle-19c-vagrant/virtualbox/private_key" 127.0.0.1
The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
ED25519 key fingerprint is SHA256:WnMw/1XuV9GuqSxZfkP239KEN4bVrONP61AtVVzqvk0.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[127.0.0.1]:2222' (ED25519) to the list of known hosts.
Load key "C:/Users/XiaoYu/Desktop/WORKSPACE/vagrant-projects/OracleDatabase/19.3.0/.vagrant/machines/oracle-19c-vagrant/virtualbox/private_key": error in libcrypto
vagrant@127.0.0.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
最終是這個(gè)帖子提供了解決方法,原因是私鑰文件的格式不對(duì)。
I would double check that your private key secret has a newline character at the end of the file, because for some reason libcrypto requires it to be a “valid format”
因?yàn)槲沂窃趃itbash下運(yùn)行vagrant ssh命令的,gitbash需要Linux格式的密鑰文件,而此時(shí)的秘鑰文件為DOS格式。因此,用gitbash下提供dos2unix命令轉(zhuǎn)換就好:
$ dos2unix.exe C:/Users/XiaoYu/Desktop/WORKSPACE/vagrant-projects/OracleDatabase/19.3.0/.vagrant/machines/oracle-19c-vagrant/virtualbox/private_key
dos2unix: converting file C:/Users/XiaoYu/Desktop/WORKSPACE/vagrant-projects/OracleDatabase/19.3.0/.vagrant/machines/oracle-19c-vagrant/virtualbox/private_key to Unix format...
如果你用vi查看文件,你會(huì)發(fā)現(xiàn)底部有dos的顯示,轉(zhuǎn)換后就變?yōu)閡nix了:
以下是成功的登錄:
$ vagrant ssh
Last login: Wed Jan 10 21:01:16 2024 from 10.0.2.2
Welcome to Oracle Linux Server release 7.9 (GNU/Linux 5.4.17-2136.325.5.el7uek.x86_64)
The Oracle Linux End-User License Agreement can be viewed here:
* /usr/share/eula/eula.en_US
For additional packages, updates, documentation and community help, see:
* https://yum.oracle.com/
[vagrant@oracle-19c-vagrant ~]$
vagrant putty 不能登錄虛機(jī)
錯(cuò)誤如下:
$ vagrant putty
C:/Users/XiaoYu/.vagrant.d/gems/3.1.3/gems/vagrant-multi-putty-1.6.0/lib/vagrant-multi-putty/command.rb:114:in `read': Could not parse PKey: unsupported (OpenSSL::PKey::PKeyError)
from C:/Users/XiaoYu/.vagrant.d/gems/3.1.3/gems/vagrant-multi-putty-1.6.0/lib/vagrant-multi-putty/command.rb:114:in `block in get_putty_key_file'
from <internal:kernel>:90:in `tap'
from C:/Users/XiaoYu/.vagrant.d/gems/3.1.3/gems/vagrant-multi-putty-1.6.0/lib/vagrant-multi-putty/command.rb:112:in `get_putty_key_file'
from C:/Users/XiaoYu/.vagrant.d/gems/3.1.3/gems/vagrant-multi-putty-1.6.0/lib/vagrant-multi-putty/command.rb:94:in `putty_connect'
from C:/Users/XiaoYu/.vagrant.d/gems/3.1.3/gems/vagrant-multi-putty-1.6.0/lib/vagrant-multi-putty/command.rb:53:in `block in execute'
from C:/Program Files/Vagrant/embedded/gems/gems/vagrant-2.4.0/lib/vagrant/plugin/v2/command.rb:249:in `block in with_target_vms'
from C:/Program Files/Vagrant/embedded/gems/gems/vagrant-2.4.0/lib/vagrant/plugin/v2/command.rb:238:in `each'
from C:/Program Files/Vagrant/embedded/gems/gems/vagrant-2.4.0/lib/vagrant/plugin/v2/command.rb:238:in `with_target_vms'
from C:/Users/XiaoYu/.vagrant.d/gems/3.1.3/gems/vagrant-multi-putty-1.6.0/lib/vagrant-multi-putty/command.rb:51:in `execute'
from C:/Program Files/Vagrant/embedded/gems/gems/vagrant-2.4.0/lib/vagrant/cli.rb:67:in `execute'
from C:/Program Files/Vagrant/embedded/gems/gems/vagrant-2.4.0/lib/vagrant/environment.rb:319:in `cli'
from C:/Program Files/Vagrant/embedded/gems/gems/vagrant-2.4.0/bin/vagrant:248:in `<main>'
如果putty直接登錄:
putty -l vagrant -P 2222 -i "C:/Users/XiaoYu/Desktop/WORKSPACE/vagrant-projects/OracleDatabase/19.3.0/.vagrant/machines/oracle-19c-vagrant/virtualbox/private_key" 127.0.0.1
報(bào)錯(cuò)如下:
這個(gè)錯(cuò)誤的原因在于,putty需要的密鑰是PPK格式,而在密鑰目錄下,這個(gè)PPK文件不存在(原因尚不知道),但openssh格式的密鑰文件private_key是存在的。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-817604.html
$ cd .vagrant/machines/oracle-19c-vagrant/virtualbox/
$ ls *key*
private_key
$ cat private_key
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1r...
bucpF2j40j3P6HpKqZaLac+gSYPHu42dSjSRObH7jgFltC8FwlslPuVAvY4W
AAAAB3ZhZ3JhbnQBAgMEBQY=
-----END OPENSSH PRIVATE KEY-----
所以,只需要通過(guò)puttygen將private_key導(dǎo)入,轉(zhuǎn)換后另存為private_key.ppk到其目錄下即可。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-817604.html
$ ls *key*
private_key private_key.ppk
到了這里,關(guān)于Oracle Vagrant Box 無(wú)法登錄的2個(gè)問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!