Me gustaría mover una clave ssh a vagabundo y ponerlas ~/.ssh
, ¿cuál es la forma más fácil de hacerlo? Tengo lo siguiente en mi archivo 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 vagabundo vagabundo 1670 26 de marzo 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 22 de marzo 08:56 claves_autorizadas -rw-r - r-- 1 raíz raíz 1670 26 de marzo 08:59 id_rsa
pero cuando lo hago vagrant ssh -c "ls -l ~/.ssh"
me sale:
$ vagrant ssh -c "ls -l ~/.ssh"
total 4
-rw-r--r-- 1 vagrant vagrant 409 Mar 20 04:47 authorized_keys
Así que vagabundo está sobrescribiendo mi .ssh
directorio.
¿Qué pasa con el reenvío de agentes SSH?
Asegúrese de que su clave SSH funcione localmente primero y luego agréguela
config.ssh.forward_agent = true
a suVagrantfile
paso.Detalles vagos aquí: http://docs.vagrantup.com/v2/vagrantfile/ssh_settings.html
fuente
config.ssh.private_key_path
o haría algo terrible como tener la clave ssh en la carpeta del proyecto con el archivo Vagrantfile. Debe distribuirse de alguna manera en el caso de uso, ¡así que elige tu maldad!Puede usar el módulo de archivo principal de Ruby, así:
¡Estoy realmente sorprendido de que Vagrant no proporcione esto por defecto!
fuente
echo
argumentos:echo "#{ssh_pub_key}" >> /home/vagrant/.ssh/authorized_keys
yecho "#{ssh_pub_key}" >> /root/.ssh/authorized_keys
. Esto también funcionará si una clave SSH pública contiene caracteres especiales (por ejemplo(
).Eche un vistazo al Vagrant Shell Provisioner , agregaría esto a su Vagrantfile.
Sin embargo, dependiendo de lo que intente lograr, probablemente sea mejor usar la clave ssh suministrada para acceder a Vagrant.
Para generar un archivo de configuración rápida que se agregará a su
~/.ssh/config
, incluida una línea de archivo de identidad ejecutada$ vagrant ssh-config
. Entonces podrías$ ssh you-vagrant-box
más que$ vagrant ssh
.fuente
~/
y/home/ubuntu
tiene la misma ubicación? El homedir predeterminado del vagabundo es/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"
embargo, puede tener problemas de permisos al leer la clave ssh.~/.ssh
usando una carpeta sincronizada ycp
, pero parece que vagabundo lo sobrescribe después.Para mover las claves privadas y públicas, funcionará lo siguiente:
fuente