SSH sur Vagrant Box Avec un nom d'utilisateur Différent
Plutôt que ssh-ing sur mon Vagabond de la machine virtuelle avec un "vagabond" nom d'utilisateur et le mot de passe, je voudrais utiliser kevin et kevin.
J'ai modifié mon Vagrantfile
inclure:
config.ssh.username = "kevin"
Ensuite, j'ai couru vagrant reload
.
La sortie suivante a montré jusqu':
[default] Waiting for machine to boot. This may take a few minutes...
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period. This can
mean a number of things.
Cependant, je pouvais encore ssh sur mon vagrant box en utilisant vagrant/vagrant
, mais je je ne pouvais pas ssh sur la boîte avec un nom d'utilisateur et le mot de passe de kevin et kevin ou kevin/vagrant.
Noter que j'ai aussi essayé cette réponse (https://stackoverflow.com/a/9924122/409976), mais je ne pouvais ssh sur la boîte avec un nom d'utilisateur vagrant
, pas kevin
(même si c'est spécifié dans le Vagrantfile
).
Comment puis-je configurer mon Vagrantfile afin que je puisse ssh à l'aide de leur nom d'utilisateur kevin
?
- Si vous pouvez ssh en vous-même à l'aide de
vagrant
, mais pas Kevin, alors il semble que vous devez mettre en place leskevin
utilisateur dans l'invité de l'image. LeVagrantfile
configuration n'établit l'utilisateur à utiliser, il n'a pas de configuration des utilisateurs sur l'invité.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le protocole ssh pour la zone à l'aide
vagrant
mais PASkevin
, ce que l'on attend.La plupart des Vagabonds de la base de boîtes ont seulement 2 utilisateurs avec un accès SSH,
root
etvagrant
. Ils utilisent tous les deuxvagrant
comme mot de passe, en outre,vagrant
est configuré pour l'authentification par clé publique à l'aide de l'insécurité (pourquoi? voir Vagrant insécurité par défaut?) paire de clés fournies dans le Vagrant projet sur GitHub.Pour être en mesure de vous connecter en tant
kevin
, vous aurez à ssh sur la machine et créer l'utilisateur (useradd -m -s /bin/bash -U kevin
) tout d'abord, configurez l'authentification par clé publique (de nombreuses façons.e.gssh-copy-id
, je vais le laisser pour vous.)Vous devriez être en mesure de faire un ssh sur la boîte après la création de l'utilisateur à l'aide de
vagrant ssh
si vous avez bien misconfig.ssh.username
dansVagrantfile
.Bien sûr, vous pouvez manuellement ssh dans la boîte (à supposer NAT est en cours d'utilisation)
ssh -p 2222 kevin@localhost
ou (sur Linux)
ssh -p 2222 -i /opt/vagrant/embedded/gems/gems/vagrant-1.5.1/keys/vagrant.pub vagrant@localhost
useradd ...
), détruire & faire tourner ma machine virtuelle, puis mettre en SSH avec putty à l'aide de kevin et kevin de log-in. Mais, je suis un peu confus car, comme vous l'aviez mentionné dans "le Vagabond d'insécurité par défaut?," ne devrait pasvagrant
etroot
seulement être en mesure de SSH sans touches configurées de façon explicite?Une autre solution, après l'ajout de l'utilisateur à l'Errance par l'intermédiaire de votre provisionnement script:
ajouter à votre Vagrant fichier:
Maintenant Vagrant utilisera par défaut
vagrant
utilisateur à disposition de votre VM, mais une fois en place, vous pouvez utiliser de simplesvagrant ssh
connecter en tant quekevin
par défaut Vagrant ssh-clé.De cette façon, vous pouvez expédier votre choix
Vagrantfile
et les utilisateurs juste direvagrant up
etkevin
devient automatiquement prêt à l'emploi.Créer un vagabond fichier comme celui-ci. Notez que nous sommes le démarrage de l'errance de l'utilisateur à changer immédiatement à l' 'kevin' utilisateur que nous avons créé.
maintenant ssh sur la machine virtuelle:
Un peu un hack, mais vous pouvez ajouter la ligne
sudo su - kevin
pour votre .bash_profile fichier et ajouter kevin à la sudoers, sans mot de passe.Cela va changer l'utilisateur actuel de kevin lors de la connexion comme le vagabond de l'utilisateur à partir de la ligne de commande.
L'avantage de cette approche est que le NAT n'a pas besoin d'être activé.