Je voudrais déplacer une clé ssh dans vagrant et les insérer ~/.ssh
, quelle est la façon la plus simple de le faire? J'ai les éléments suivants dans mon dossier Vagrant:
config.vm.synced_folder "conf.d", "/svr/conf.d"
config.vm.provision :shell,
:inline => "ls -l /svr/conf.d/.ssh"
total 4 -rw-r - r-- 1 vagabond vagabond 1670 26 mars 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"
total 4 -rw ------- 1 ubuntu ubuntu 0 mars 22 08:56 authorized_keys -rw-r - r-- 1 racine root 1670 26 mars 08:59 id_rsa
mais quand je le fais, vagrant ssh -c "ls -l ~/.ssh"
je reçois:
$ vagrant ssh -c "ls -l ~/.ssh"
total 4
-rw-r--r-- 1 vagrant vagrant 409 Mar 20 04:47 authorized_keys
Alors vagabond écrase mon .ssh
annuaire.
Qu'en est-il du transfert d'agent SSH?
Assurez-vous d'abord que votre clé SSH fonctionne localement, puis ajoutez-la
config.ssh.forward_agent = true
à votreVagrantfile
passage.Détails Vagrant ici: http://docs.vagrantup.com/v2/vagrantfile/ssh_settings.html
la source
config.ssh.private_key_path
ou je faisais quelque chose de terrible comme avoir la clé ssh dans le dossier du projet avec le Vagrantfile. Cela doit être distribué d'une manière ou d'une autre dans le cas d'utilisation, alors choisissez votre mal!Vous pouvez utiliser le module File de Ruby, comme ceci:
Je suis vraiment surpris que Vagrant ne fournisse pas cela par défaut!
la source
echo
arguments:echo "#{ssh_pub_key}" >> /home/vagrant/.ssh/authorized_keys
etecho "#{ssh_pub_key}" >> /root/.ssh/authorized_keys
. Cela fonctionnera également si une clé SSH publique contient des caractères spéciaux (par exemple(
).Jetez un œil au Vagrant Shell Provisioner , vous l'ajouteriez à votre Vagrantfile.
Cependant, selon ce que vous essayez de réaliser, il est probablement préférable d'utiliser la clé ssh fournie pour accéder à Vagrant.
Pour générer un fichier de configuration rapide à ajouter à votre
~/.ssh/config
, y compris une ligne de fichier d'identité exécutée$ vagrant ssh-config
. Vous pourriez alors$ ssh you-vagrant-box
plutôt que$ vagrant ssh
.la source
~/
et/home/ubuntu
êtes-vous au même endroit? Le homedir par défaut de Vagrant est/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"
Vous pouvez rencontrer des problèmes d'autorisations en lisant la clé ssh.~/.ssh
un dossier synchronisé etcp
, mais il semble que vagabond l'écrase ensuite.Pour déplacer les clés privées et publiques, les éléments suivants fonctionneront:
la source