Ich möchte einen SSH-Schlüssel in Vagabund verschieben und sie einfügen. ~/.ssh
Was ist der einfachste Weg, dies zu tun? Ich habe Folgendes in meiner Vagrant-Datei:
config.vm.synced_folder "conf.d", "/svr/conf.d"
config.vm.provision :shell,
:inline => "ls -l /svr/conf.d/.ssh"
insgesamt 4 -rw-r - r-- 1 Vagabund Vagabund 1670 26. März 08:19 id_rsa.mediapop
config.vm.provision :shell,
:inline => "cp /svr/conf.d/.ssh/id_rsa.mediapop /home/ubuntu/.ssh/id_rsa"
config.vm.provision :shell,
:inline => "ls -l /home/ubuntu/.ssh"
gesamt 4 -rw ------- 1 ubuntu ubuntu 0 Mar 22 08:56 autorisierte_Tasten -rw-r - r-- 1 root root 1670 Mar 26 08:59 id_rsa
aber wenn ich es tue, vagrant ssh -c "ls -l ~/.ssh"
bekomme ich:
$ vagrant ssh -c "ls -l ~/.ssh"
total 4
-rw-r--r-- 1 vagrant vagrant 409 Mar 20 04:47 authorized_keys
Vagrant überschreibt also mein .ssh
Verzeichnis.
Was ist mit SSH Agent Forwarding?
Stellen Sie sicher, dass Ihr SSH-Schlüssel zuerst lokal funktioniert, und fügen
config.ssh.forward_agent = true
Sie ihn dann zu IhremVagrantfile
Durchgang hinzu.Vagrant Details hier: http://docs.vagrantup.com/v2/vagrantfile/ssh_settings.html
quelle
config.ssh.private_key_path
oder etwas Schreckliches tun, wie den ssh-Schlüssel im Projektordner mit der Vagrant-Datei zu haben. Es muss irgendwie im Anwendungsfall verteilt werden, also such dir dein Übel aus!Sie können Rubys Kernmodul "Datei" wie folgt verwenden:
Ich bin wirklich überrascht, dass Vagrant dies nicht standardmäßig bereitstellt!
quelle
echo
Argumente hinzuzufügen :echo "#{ssh_pub_key}" >> /home/vagrant/.ssh/authorized_keys
undecho "#{ssh_pub_key}" >> /root/.ssh/authorized_keys
. Dies funktioniert auch, wenn ein öffentlicher SSH-Schlüssel Sonderzeichen enthält (z(
. B. ).Schauen Sie sich den Vagrant Shell Provisioner an , den Sie Ihrem Vagrantfile hinzufügen würden.
Je nachdem, was Sie erreichen möchten, ist es wahrscheinlich besser, den mitgelieferten SSH-Schlüssel zu verwenden, um auf Vagrant zuzugreifen.
So generieren Sie eine schnelle Konfigurationsdatei, die zu Ihrer hinzugefügt werden soll
~/.ssh/config
, einschließlich eines Ausführungslaufs für eine Identitätsdatei$ vagrant ssh-config
. Sie könnten dann$ ssh you-vagrant-box
eher als$ vagrant ssh
.quelle
~/
und/home/ubuntu
sind der gleiche Ort? Vagrants Standard-Homedir ist/home/vagrant
.git_ssh_key = File.read('/svr/conf.d/.ssh/id_rsa.mediapop'); config.vm.provision :shell, :inline => "cat >>/home/vagrant/.ssh/id_rda.mediapop <<EOF #{git_ssh_key} EOF"
Sie können also Folgendes tun: Beim Lesen des SSH-Schlüssels können jedoch Berechtigungsprobleme auftreten.~/.ssh
mit einem synchronisierten Ordner zu kopieren undcp
, aber es scheint, als würde Vagrant sie danach überschreiben.Um sowohl private als auch öffentliche Schlüssel zu verschieben, funktioniert Folgendes:
quelle