![Почему я не могу подключиться по ssh к своему хосту Vagrant? [email protected]: Отказано в доступе (открытый ключ)](https://rvso.com/image/785363/%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83%20%D1%8F%20%D0%BD%D0%B5%20%D0%BC%D0%BE%D0%B3%D1%83%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%D1%81%D1%8F%20%D0%BF%D0%BE%20ssh%20%D0%BA%20%D1%81%D0%B2%D0%BE%D0%B5%D0%BC%D1%83%20%D1%85%D0%BE%D1%81%D1%82%D1%83%20Vagrant%3F%20%5Bemail%20protected%5D%3A%20%D0%9E%D1%82%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%BE%20%D0%B2%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B5%20(%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B9%20%D0%BA%D0%BB%D1%8E%D1%87).png)
Я создал 5 виртуальных машин для своего проекта Vagrant Status
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[email protected]
Кое-что, что я могу сделать...