Sauvé ma vie. Savez-vous si cela a des répercussions sur la façon dont les vagabonds agissent?
Matt
1
La leçon ici est que si vous créez une boîte de base, suivez les conventions suggérées par Hashicorp et définissez votre mot de passe racine sur «vagrant». voir docs.vagrantup.com/v2/boxes/base.html
Mike D
Y a-t-il des problèmes de sécurité potentiels avec un serveur qui a un mot de passe root très facile à deviner sur votre ordinateur personnel? J'imagine que les paramètres réseau aident à cela, mais je me demande.
Nathan Basanese
1
Merci pour l'indice. Il s'avère que les boîtes vagabondes d'Ubuntu définissent un mot de passe aléatoire pour l'utilisateur root (voir groups.google.com/d/msg/vagrant-up/xMWKkKW24xs/f5OaV5QWAp4J ). Il faut donc toujours définir d'abord un mot de passe root.
asmaier
Merci,
j'avais
110
Solution:
ajoutez les éléments suivants à votre Vagrantfile:
Lorsque vous vagrant sshvous connectez désormais, vous devez rootvous 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:
cela fonctionne également pour la version 1.7.2. La sécurité des clés s'est améliorée depuis la version 1.7.0; cette technique remplace 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é appropriées avant la publication.
Pourrait-il y avoir une raison d'obtenir l'invite de mot de passe lors de l'exécution vagrant ssh? (après avoir apporté les modifications décrites) Vagrant version 1.7.2
roign
@RobertIgnat peut-être que vous devez définir votre mot de passe racine pour correspondre à ce que vous avez dans votre config.ssh.passwordvaleur. vous devriez pouvoir commenter les config.ssh.*lignes nouvellement ajoutées pour accéder à votre boîte, puis changer le mot de passe root via sudo passwd root.
Mike D
11
Pour une machine qui a déjà été approvisionnée, faites ce qui précède et faites-lemkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
Felipe Alvarez
2
ne fonctionne pas pour une nouvelle installation de Vagrant, probablement parce que quand on utilise par exemple ubuntu / xenial, on DOIT utiliser les identifiants utilisateur créés ici. (voir aussi stackoverflow.com/a/40478402/605463 )
axd
1
Pour toute personne utilisant centos/7: Cette boîte définit un mot de passe root aléatoire; on peut vagrant sshet ensuite sudo surooter, mais (d'après ce que je peux dire) les paramètres de configuration ne fonctionnent pas sur une nouvelle vagrant uputilisant cette VM.
mhulse
35
Cela fonctionne si vous êtes sur ubuntu / trusty64 box:
vagrant ssh
Une fois que vous êtes dans la boîte ubuntu:
sudo su
Vous êtes maintenant utilisateur root. Vous pouvez mettre à jour le mot de passe root comme indiqué ci-dessous:
sudo -i
passwd
Modifiez maintenant 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:
Mais vagrant vous demande toujours le mot de passe root, probablement la boîte de base que vous avez utilisée n'est pas configurée pour autoriser la connexion root.
Par exemple, la boîte de ubuntu14.04 ne contiendraient pas offical PermitRootLogin yesdans /etc/ssh/sshd_config.
Donc si vous voulez qu'une box puisse vous connecter en tant que root par défaut (uniquement Vagrantfile, plus de travail), vous devez:
Configurer une VM par nom d'utilisateur vagrant(quel que soit le nom sauf root)
Connectez-vous et modifiez le fichier de configuration sshd.
Bienvenue à SO. Veuillez ajouter suffisamment de détails et de contexte aux réponses. Surtout lorsque vous répondez à une vieille question avec de bonnes réponses
Jayan
c'était plus utile pour moi que la solution principale. ssh ne vous permet pas de vous connecter en tant que root par défaut.
bmbigbang
2
Remarque: n'utilisez cette méthode que pour le développement local, elle n'est pas sécurisée . Vous pouvez configurer le mot de passe et la configuration ssh lors de l'approvisionnement de la boîte. Par exemple, avec debian/stretch64box, voici mon script de mise à disposition:
Cela définira le mot de passe root sur vagrantet autorisera la connexion root avec un mot de passe. Si vous utilisez private_networksay with ip address, 192.168.10.37vous pouvez ssh avecssh [email protected]
Vous devrez peut-être modifier cela echoet les sedcommandes en fonction du sshd_configfichier par défaut .
L'ajout de cela a Vagrantfilefonctionné pour moi. Ces lignes sont l'équivalent de votre saisie à sudo su -chaque fois que vous vous connectez. Veuillez noter que cela nécessite le réapprovisionnement de la VM.
config.vm.provision "shell", inline:<<-SHELL
echo "sudo su -">>.bashrc
SHELL
Merci pour votre solution très simple! echo "sudo -s" >> .bashrc serait mieux.
Honiix
1
Je sais que c'est une vieille question, mais en regardant la question d'origine, il semble que l'utilisateur voulait simplement exécuter une commande en tant que root, c'est ce que je dois faire lorsque je cherchais une réponse et que je suis tombé sur la question.
Donc, celui-ci vaut la peine d'être connu à mon avis:
vagrantLe mot de passe est-il repris dans la commande sudo, car comme nous le savons tous, le compte vagrant a les privilèges sudo et lorsque vous sudo, vous devez spécifier le mot de passe du compte utilisateur, pas root..et bien sûr, par défaut, le Le mot de passe de l'utilisateur vagabond est vagrant!
Par défaut, vous avez besoin des privilèges root pour arrêter, donc je suppose que faire un arrêt est un bon test.
De toute évidence, 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 vagabonde locale à l'hôte, donc il n'y a pas vraiment de problème de sécurité que je puisse voir.
J'ai eu quelques problèmes avec l'approvisionnement en essayant de me connecter en tant que root, même avec PermitRootLogin yes. Je l'ai fait pour que seule la vagrant sshcommande soit affectée:
# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
config.ssh.username = 'root'
end
Réponses:
C'est utile:
pour tous ceux qui ont été surpris par la nécessité de définir d'abord un mot de passe root dans vagrant
la source
Solution:
ajoutez les éléments suivants à votre
Vagrantfile
:Lorsque vous
vagrant ssh
vous connectez désormais, vous devezroot
vous attendre à ce qui suit:Mise à jour du 23 juin 2015: cela fonctionne également pour la version 1.7.2. La sécurité des clés s'est améliorée depuis la version 1.7.0; cette technique remplace 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é appropriées avant la publication.
Référence:
la source
vagrant ssh
? (après avoir apporté les modifications décrites) Vagrant version 1.7.2config.ssh.password
valeur. vous devriez pouvoir commenter lesconfig.ssh.*
lignes nouvellement ajoutées pour accéder à votre boîte, puis changer le mot de passe root viasudo passwd root
.mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Cette boîte définit un mot de passe root aléatoire; on peutvagrant ssh
et ensuitesudo su
rooter, mais (d'après ce que je peux dire) les paramètres de configuration ne fonctionnent pas sur une nouvellevagrant up
utilisant cette VM.Cela fonctionne si vous êtes sur ubuntu / trusty64 box:
Une fois que vous êtes dans la boîte ubuntu:
Vous êtes maintenant utilisateur root. Vous pouvez mettre à jour le mot de passe root comme indiqué ci-dessous:
Modifiez maintenant la ligne ci-dessous dans le fichier
/etc/ssh/sshd_config
De plus, il est pratique de créer votre propre nom d'utilisateur alternatif:
Attendez qu'il vous demande le mot de passe.
la source
Si
Vagrantfile
comme ci-dessous:Mais vagrant vous demande toujours le mot de passe root, probablement la boîte de base que vous avez utilisée n'est pas configurée pour autoriser la connexion root.
Par exemple, la boîte de ubuntu14.04 ne contiendraient pas offical
PermitRootLogin yes
dans/etc/ssh/sshd_config
.Donc si vous voulez qu'une box puisse vous connecter en tant que root par défaut (uniquement Vagrantfile, plus de travail), vous devez:
Configurer une VM par nom d'utilisateur
vagrant
(quel que soit le nom sauf root)Connectez-vous et modifiez le fichier de configuration sshd.
ubuntu: modifier
/etc/ssh/sshd_config
, définirPermitRootLogin yes
autres: ....
(J'utilise uniquement ubuntu, n'hésitez pas à ajouter une solution de contournement d'autres plates-formes)
Construisez une nouvelle boîte de base:
cela crée un fichier
package.box
Ajoutez cette boîte de base à vagrant:
Ensuite, vous devez utiliser cette boîte de base pour créer des vm qui permettent la connexion automatique en tant que root.
Détruire la VM d'origine par
vagrant destroy
Modifiez l'original
Vagrantfile
, changez le nom de la boîteubuntu-root
et le nom d'utilisateur enroot
, puisvagrant up
créez-en un nouveau.Cela m'a pris du temps à comprendre, c'est trop compliqué à mon avis. J'espère que le vagabond améliorerait cela.
la source
N'oubliez pas que root est autorisé à se connecter avant !!!
Placez le code de configuration ci-dessous dans le
/etc/ssh/sshd_config
fichier.la source
Remarque: n'utilisez cette méthode que pour le développement local, elle n'est pas sécurisée . Vous pouvez configurer le mot de passe et la configuration ssh lors de l'approvisionnement de la boîte. Par exemple, avec
debian/stretch64
box, voici mon script de mise à disposition:Cela définira le mot de passe root sur
vagrant
et autorisera la connexion root avec un mot de passe. Si vous utilisezprivate_network
say with ip address,192.168.10.37
vous pouvez ssh avecssh [email protected]
Vous devrez peut-être modifier cela
echo
et lessed
commandes en fonction dusshd_config
fichier par défaut .la source
L'ajout de cela a
Vagrantfile
fonctionné pour moi. Ces lignes sont l'équivalent de votre saisie àsudo su -
chaque fois que vous vous connectez. Veuillez noter que cela nécessite le réapprovisionnement de la VM.la source
Je sais que c'est une vieille question, mais en regardant la question d'origine, il semble que l'utilisateur voulait simplement exécuter une commande en tant que root, c'est ce que je dois faire lorsque je cherchais une réponse et que je suis tombé sur la question.
Donc, celui-ci vaut la peine d'être connu à mon avis:
vagrant
Le mot de passe est-il repris dans la commande sudo, car comme nous le savons tous, le compte vagrant a les privilèges sudo et lorsque vous sudo, vous devez spécifier le mot de passe du compte utilisateur, pas root..et bien sûr, par défaut, le Le mot de passe de l'utilisateur vagabond estvagrant
!Par défaut, vous avez besoin des privilèges root pour arrêter, donc je suppose que faire un arrêt est un bon test.
De toute évidence, 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 vagabonde locale à 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.
la source
J'ai eu quelques problèmes avec l'approvisionnement en essayant de me connecter en tant que root, même avec
PermitRootLogin yes
. Je l'ai fait pour que seule lavagrant ssh
commande soit affectée:la source
Veuillez ajouter ceci au fichier vagrant:
la source