Warum kann ich keine SSH-Verbindung zu meinem Vagrant-Host herstellen? [email protected]: Berechtigung verweigert (öffentlicher Schlüssel)

Warum kann ich keine SSH-Verbindung zu meinem Vagrant-Host herstellen? [email protected]: Berechtigung verweigert (öffentlicher Schlüssel)

Ich habe 5 VMs für mein Projekt Vagrant Status erstellt

Current machine states:

master-1                  running (virtualbox)
master-2                  running (virtualbox)
master-3                  running (virtualbox)
node-1                    running (virtualbox)
node-2                    running (virtualbox)

ich kann

vagrant ssh master-1
vagrant ssh master-2
vagrant ssh master-3

Vagrant SSH-Konfiguration zeigt

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

Aber

ssh [email protected]
[email protected]: Permission denied (publickey).

schlägt fehl.

Ich habe meine id_rsa.pub überprüft

ssh-rsa 
AAAAB3NzaC1yc2EAAAADAQABAAACAQCZmhxzwwJJ1z/5rgoprHc31gneGY5rzFd/giE5ehZSH75WqT1hQKQ2gZUN8A3L+04oZ9H1uOUQHJBPV5mj7+FKkE+hPuTDVSUXcbYC9DlhurbmComoMh....oIQ== jovo@jovo-IdeaPad

und ich kann sehen, dass alle fünf VMs unterschiedliche autorisierte Schlüssel haben

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key

Was muss ich tun, um von meinem Host aus SSH für alle fünf Hosts zu aktivieren?

Antwort1

Ich folgte diesemSO-Beitrag

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

Ich habe auch eine andere Lösung gefunden, indem ich meine id_rsa hinzugefügt habe

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

Antwort2

Sie müssen Ihren öffentlichen Schlüssel kopieren, der generiert wird, oder Sie müssen ihn mit dem folgenden Befehl generieren: -

Vorausgesetzt, Ihr Hostcomputer ist ein Linux-Computer

->ssh-keygen -t rsa -b 4096

Der obige Befehl erstellt einen öffentlichen Schlüssel in

/home/Benutzer/.ssh/id_rsa.pub

Kopieren Sie diesen öffentlichen Schlüssel, und fügen Sie ihn in die VM-Maschine ein, auf die Sie per SSH zugreifen möchten. Dies ist der Pfad, in den Sie ihn einfügen müssen.

->/home/Benutzer/.ssh/autorisierte_Schlüssel

Fügen Sie in allen VMs denselben öffentlichen Schlüssel ein. Dadurch wird sichergestellt, dass Ihr Host passwortlosen Zugriff auf alle VM-Maschinen hat.

In manchen Fällen gibt es im obigen Pfad keine Datei mit dem Namen „authorized_keys“. Sie müssen die Datei dann mit der Berechtigung 700 erstellen.

und das allerletzte und wichtigste, was ich in Ihrer Konfigurationsdatei gesehen habe, ist, dass Sie die Portnummer für SSH geändert haben. Ihr Befehl zum Verbinden mit SSH sollte also wie folgt lauten:

-> ssh -p 2206[email geschützt]

Eine Kleinigkeit, die ich tun kann ...

verwandte Informationen