web-dev-qa-db-fra.com

login vagrant en tant que root par défaut

Problème: fréquemment, la première commande que je tape dans mes boîtes est su -.

Question: comment faire pour que vagrant ssh utilise l'utilisateur root par défaut?

Version: vagrant 1.6.5

76
Mike D

Solution: 
Ajoutez ce qui suit à votre Vagrantfile:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

Lorsque vous vagrant ssh désormais, vous vous connecterez en tant que root et vous devez vous attendre à ce qui suit:

==> mybox: Waiting for machine to boot. This may take a few minutes...
    mybox: SSH address: 127.0.0.1:2222
    mybox: SSH username: root
    mybox: SSH auth method: password
    mybox: Warning: Connection timeout. Retrying...
    mybox: Warning: Remote connection disconnect. Retrying...
==> mybox: Inserting Vagrant public key within guest...
==> mybox: Key inserted! Disconnecting and reconnecting using new SSH key...
==> mybox: Machine booted and ready!

Mise à jour du 23 juin 2015: Ceci fonctionne également pour la version 1.7.2. La sécurité de la saisie s’est améliorée depuis la version 1.7.0; cette technique redéfinit la méthode précédente qui utilise une clé privée connue. Cette solution n'est pas destinée à être utilisée pour une boîte accessible au public sans mesures de sécurité adéquates préalablement à la publication.

Référence:

98
Mike D

C'est utile:

Sudo passwd root

pour tous ceux qui ont été surpris par la nécessité de définir un mot de passe root dans vagabond en premier

108
Ed Williams

Cela fonctionne si vous êtes sur la boîte ubuntu/trusty64:

vagrant ssh

Une fois dans la boîte Ubuntu:

Sudo su

Maintenant vous êtes utilisateur root. Vous pouvez mettre à jour le mot de passe root comme indiqué ci-dessous:

Sudo -i
passwd

Maintenant, éditez la ligne ci-dessous dans le fichier /etc/ssh/sshd_config

PermitRootLogin yes

De plus, il est pratique de créer votre propre nom d'utilisateur alternatif:

adduser johndoe

Attendez que le mot de passe soit demandé.

27
Thyag

Si Vagrantfile comme ci-dessous:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

Mais vagrant vous demande toujours le mot de passe root, Probablement la base que vous avez utilisée n’a pas été configurée pour autoriser la connexion root.


Par exemple, la zone officielle ubuntu14.04 ne définit pas PermitRootLogin yes dans /etc/ssh/sshd_config.

Donc, si vous voulez qu'une boîte puisse se connecter en tant que racine par défaut (uniquement Vagrantfile, plus de travail), vous devez:

  1. Configurer une machine virtuelle par nom d'utilisateur vagrant (quel que soit le nom mais la racine)

  2. Connectez-vous et éditez le fichier de configuration sshd.

    ubuntu: edit /etc/ssh/sshd_config, set PermitRootLogin yes

    autres: ....

    (J'utilise uniquement Ubuntu, n'hésitez pas à ajouter la solution de contournement d'autres plateformes)

  3. Construire une nouvelle boîte de base:

    vagrant package --base your-vm-name
    

    cela crée un fichier package.box

  4. Ajoutez cette boîte de base au vagabond:

    vagrant box add ubuntu-root file:///somepath/package.box
    

    vous devez ensuite utiliser cette boîte de base pour créer vm, qui autorise la connexion automatique en tant que root.

  5. Détruire la machine virtuelle d'origine par vagrant destroy

  6. Éditez le Vagrantfile original, changez le nom de la boîte en ubuntu-root et le nom d'utilisateur en root, puis vagrant up en créez un nouveau.

Cela m'a pris du temps à comprendre, c'est trop compliqué à mon avis. Espoir vagabond améliorerait cela.

10
Mithril

N'oubliez pas que root est autorisé à se connecter avant !!!

Placez le code de configuration ci-dessous dans le fichier /etc/ssh/sshd_config.

PermitRootLogin yes
7
Andrew Coding

Je sais que c’est une vieille question, mais si on regarde la question initiale, il semble que l’utilisateur veuille exécuter une commande en tant que root. C’est ce que je dois faire lorsque je cherchais une réponse et que j’ai trébuché sur la question. 

Donc, celui-ci mérite d'être connu à mon avis:

vagrant ssh servername -c "echo vagrant | Sudo -S shutdown 0"

vagrant est le mot de passe repris dans la commande Sudo, car, comme nous le savons tous, le compte vagabond dispose des privilèges Sudo et lorsque vous utilisez Sudo, vous devez spécifier le mot de passe du compte utilisateur, et non, bien sûr, par défaut. le mot de passe de l'utilisateur vagrant est vagrant!

Par défaut, vous devez disposer de privilèges root pour pouvoir vous arrêter. Par conséquent, je suppose que procéder à un arrêt est un bon test.

Évidemment, vous n'avez pas besoin de spécifier un nom de serveur s'il n'y en a qu'un pour cet environnement vagabond. De plus, nous parlons de machine virtuelle locale vagabonde à l'hôte, donc il n'y a pas vraiment de problème de sécurité que je puisse voir.

J'espère que cela t'aides.

1
Chris Barnett

J'ai eu quelques problèmes avec l'approvisionnement en essayant de vous connecter en tant que root, même avec PermitRootLogin yes. Je l'ai fait pour que seule la commande vagrant ssh soit affectée:

# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
  config.ssh.username = 'root'
end
0
jxmallett

Ajouter ceci à la Vagrantfile a fonctionné pour moi. Ces lignes sont l’équivalent de la saisie de Sudo su - à chaque fois que vous vous connectez. Veuillez noter que cela nécessite un réapprovisionnement de la machine virtuelle.

config.vm.provision "Shell", inline: <<-Shell
    echo "Sudo su -" >> .bashrc
Shell
0
fpereiro