Passwortloses SSH zu Vagrant, um nach Vagrant SSH einen anderen Benutzer zu laden

Passwortloses SSH zu Vagrant, um nach Vagrant SSH einen anderen Benutzer zu laden

Ich habe einen neuen Benutzer in meiner Vagrant-Box (trusty64) und versuche, mich per SSH darauf anzumelden. Anstatt mich vagrantnach dem Benutzer anzumelden vagrant up, möchte ich mich mit meinem Benutzernamen anmelden.

Was ich bisher getan habe

  1. Auf meinem Gastcomputer wurde ein Benutzer erstellt.
  2. Erstellt SSH-Schlüssel in meinem Host mitssh-keygen
  3. Kopierte den SSH-Schlüssel zum Gast mitssh-copy-id -p 2222 -i [email protected]

und der Teil des Vagrantfile sieht so aus

  config.vm.box = "ubuntu/trusty64"
  config.ssh.username = "shash"
  config.ssh.forward_agent = true
  config.ssh.private_key_path = "~/.ssh/authorized_keys"

Ich kann mich direkt anmelden, aber beim Eingeben erhalte ich immer den folgenden Fehlerssh -p '2222' '[email protected]'vagrant up

default: Warning: Connection timeout. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...

Ich bin für jede Hilfe bei der Lösung dieses Problems sehr dankbar. Danke!

Antwort1

config.ssh.private_key_pathsollte auf Ihre private Schlüsseldatei verweisen (normalerweise ~/.ssh/id_rsawird der Name der Datei angezeigt, wenn Sie ausführen ssh-keygen),nicht ~/.ssh/authorized_keys.

Antwort2

Eine alternative Möglichkeit, dies zu erreichen, besteht darin, am Ende Folgendes hinzuzufügen ~vagrant/.bashrc:

ssh chsc
exit

Wenn Sie sich das Erstellen und Installieren eines SSH-Schlüssels ersparen möchten, können Sie sustattdessen Folgendes verwenden. Allerdings können Sie damit innerhalb der Vagrant-Box Ihren SSH-Forward-Agenten nicht sshverwenden, wenn Sie innerhalb der Box eine Verbindung zu externen Servern herstellen müssen:

sudo su chsc
exit

Wenn Sie solche Änderungen vornehmen, ~vagrant/.bashrcriskieren Sie, sich im Fehlerfall aus der Shell auszusperren. Ich empfehle, ein offenes Terminal als angemeldet zu lassen vagrant, bis Sie sichergestellt haben, dass alles funktioniert. Wenn etwas schief geht, benennen Sie einfach .bashrc ( mv .bashrc .bashrc-bak).

verwandte Informationen