![為什麼我無法 ssh 到我的 Vagrant 主機? [電子郵件受保護]:權限被拒絕(公鑰)](https://rvso.com/image/785363/%E7%82%BA%E4%BB%80%E9%BA%BC%E6%88%91%E7%84%A1%E6%B3%95%20ssh%20%E5%88%B0%E6%88%91%E7%9A%84%20Vagrant%20%E4%B8%BB%E6%A9%9F%EF%BC%9F%20%5B%E9%9B%BB%E5%AD%90%E9%83%B5%E4%BB%B6%E5%8F%97%E4%BF%9D%E8%AD%B7%5D%EF%BC%9A%E6%AC%8A%E9%99%90%E8%A2%AB%E6%8B%92%E7%B5%95%EF%BC%88%E5%85%AC%E9%91%B0%EF%BC%89.png)
我為我的專案流浪者狀態創建了 5 個虛擬機
Current machine states:
master-1 running (virtualbox)
master-2 running (virtualbox)
master-3 running (virtualbox)
node-1 running (virtualbox)
node-2 running (virtualbox)
我可以
vagrant ssh master-1
vagrant ssh master-2
vagrant ssh master-3
vagrant ssh-config 顯示
vagrant ssh-config
Host master-1
HostName 127.0.0.1
User vagrant
Port 2206
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/miki/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
但
ssh [email protected]
[email protected]: Permission denied (publickey).
失敗。
我檢查了我的 id_rsa.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAACAQCZmhxzwwJJ1z/5rgoprHc31gneGY5rzFd/giE5ehZSH75WqT1hQKQ2gZUN8A3L+04oZ9H1uOUQHJBPV5mj7+FKkE+hPuTDVSUXcbYC9DlhurbmComoMh....oIQ== jovo@jovo-IdeaPad
我可以看到所有五個虛擬機器都有不同的授權金鑰
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
我應該怎麼做才能從我的主機啟用 ssh 到所有五個主機?
答案1
我跟著這個所以帖子
ssh [email protected] -p 2222 -o LogLevel=FATAL -o Compression=yes -o DSAAuthentication=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /home/miki/.vagrant.d/insecure_private_key
我還通過添加我的 id_rsa 找到了另一個解決方案
Vagrant.configure("2") do |config|
config.ssh.insert_key = false
config.ssh.private_key_path = ['~/.vagrant.d/insecure_private_key', '~/.ssh/id_rsa']
config.vm.provision "file", source: "~/.ssh/id_rsa.pub", destination: "~/.ssh/authorized_keys"
(1..3).each do |i|
config.vm.define "master-#{i}" do |master|
master.vm.box = "ubuntu/bionic64"
end
end
(1..2).each do |i|
config.vm.define "node-#{i}" do |node|
node.vm.box = "ubuntu/bionic64"
end
end
config.vm.network "public_network", :bridge => "wlo1"
config.vm.provider "virtualbox" do |vb|
vb.memory = "3072"
vb.cpus = "3"
end
end
答案2
您必須複製正在產生的公鑰,或者必須使用以下命令來產生它:-
期望你的主機是一台 Linux 機器
->ssh-keygen -t rsa -b 4096
上面的命令將創建一個公鑰
/home/user/.ssh/id_rsa.pub
複製該公鑰,然後將其貼上到要 ssh 的虛擬機器中,即貼上路徑。
->/home/user/.ssh/authorized_keys
將相同的公鑰貼到所有虛擬機器中。
在某些情況下,上述路徑中沒有名為authorized_keys的文件,您必須在此時使用權限700建立該文件。
我在你的設定檔中看到的最後也是最重要的事情是你更改了 SSH 的連接埠號,所以你用 ssh 連接的命令應該是這樣的,
-> ssh -p 2206[電子郵件受保護]
我可以做一些小事..