web-dev-qa-db-fra.com

Comment activer l'authentification par mot de passe ssh pour Vagrant VM?

J'aimerais activer l'authentification SSH par mot de passe (et conserver l'authentification par clé activée) pour une VM Vagrant. Comment régler ça?

Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.box = "Fedora/26-cloud-base"
  config.vm.box_version = "20170705"

  config.ssh.username = 'vagrant'
  config.ssh.password = 'a'
  config.ssh.keys_only = false
end
$ Sudo vagrant ssh-config 
Host default
  HostName 192.168.121.166
  User vagrant
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/jakub/src/kubernetes-vms/kubernetes/.vagrant/machines/default/libvirt/private_key
  LogLevel FATAL

Le mot de passe a n'est pas accepté avec ces paramètres.

Je suppose que le pourrait être PasswordAuthentication no en sortie de vagrant ssh-config. Comment cette option peut-elle être activée?

8
czerny

Pour moi les travaux suivants. Vous devez ssh sur la machine virtuelle comme d’habitude, puis éditez /etc/ssh/sshd_config. Dans ce cas, vous devez définir PasswordAuthentication sur yes au lieu de no. Cela permettra l'authentification par mot de passe.

7
FreeLightman

Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.box = "Fedora/26-cloud-base"
  config.vm.box_version = "20170705"

  config.vm.provision 'Shell', inline: 'echo "vagrant:a" | chpasswd'
end

La ligne config.vm.provision 'Shell', inline: 'echo "vagrant:a" | chpasswd' appelle le provisioning du shell qui modifie le mot de passe de vagrant utilisateur (à condition que la boîte vienne avec un utilisateur prédéfini appelé vagrant).

Ensuite, on peut se connecter non seulement par vagrant ssh mais aussi

ssh vagrant@<vm-ip>
3
czerny

Si vous souhaitez forcer l'authentification par mot de passe pour la machine virtuelle, vous devez définir les éléments suivants à partir de votre fichier Vagrant

  config.ssh.username = 'vagrant'
  config.ssh.password = 'vagrant'
  config.ssh.insert_key = false

Vous devez vous assurer que l'utilisateur vagrant de la VM a le mot de passe correspondant. Je ne suis pas sûr de la boîte que vous utilisez, vous devrez donc vous vérifier. Cela fonctionne pour la case suivante: ubuntu/trusty64

1
Frédéric Henri

Pour ssh avec mot de passe, cela mettra automatiquement à jour la configuration sshd sur debian/stretch64:

config.vm.provision "Shell", inline: <<-Shell
  sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config    
  service ssh restart
Shell
1
Syam