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?
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.
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>
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
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