Salvou a minha vida. Você sabe se isso tem alguma repercussão na forma como o vagabundo age?
Matt
1
A lição aqui é que se você criar uma caixa base, siga as convenções sugeridas por Hashicorp e defina sua senha de root como 'vagrant'. consulte docs.vagrantup.com/v2/boxes/base.html
Mike D
No entanto, há algum problema de segurança em potencial com um servidor que possui uma senha de root realmente fácil de adivinhar em seu computador pessoal? Imagino que as configurações de rede ajudem nisso, mas me pergunto.
Nathan Basanese de
1
Obrigado pela dica. Acontece que as caixas vagrant do Ubuntu definem uma senha aleatória para o usuário root (consulte groups.google.com/d/msg/vagrant-up/xMWKkKW24xs/f5OaV5QWAp4J ). Portanto, é sempre necessário definir uma senha de root primeiro.
De vagrant sshagora em diante, você fará o login como roote deverá esperar o seguinte:
==> 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!
Atualização 23 de junho de 2015:
Isso funciona para a versão 1.7.2 também. A segurança de codificação melhorou desde 1.7.0; esta técnica sobrescreve o método anterior que usa uma chave privada conhecida. Esta solução não se destina a ser usada em uma caixa que está acessível publicamente sem medidas de segurança adequadas feitas antes da publicação.
Pode haver algum motivo para receber o prompt de senha durante a execução vagrant ssh? (depois de fazer as alterações descritas) Vagrant versão 1.7.2
roign
@RobertIgnat possivelmente que você precisa definir sua senha de root para corresponder ao que você tem em seu config.ssh.passwordvalor. você deve ser capaz de comentar as config.ssh.*linhas recém-adicionadas para acessar sua caixa e, em seguida, alterar a senha de root via sudo passwd root.
Mike D
11
Para uma máquina que já foi provisionada, faça o acima e façamkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
Felipe Alvarez
2
não funciona para uma nova instalação do Vagrant, provavelmente porque quando alguém usa, por exemplo, ubuntu / xenial, TEM que usar os logins de usuário criados lá. (consulte também stackoverflow.com/a/40478402/605463 )
axd
1
Para qualquer outra pessoa que use centos/7: Esta caixa define uma senha de root aleatória; pode-se vagrant sshe, em seguida, sudo sufazer root, mas (pelo que posso dizer) as configurações não funcionam em um novo vagrant upusando esta VM.
mhulse
35
Isso funciona se você estiver no box ubuntu / trusty64:
vagrant ssh
Assim que estiver na caixa do ubuntu:
sudo su
Agora você é o usuário root. Você pode atualizar a senha de root conforme mostrado abaixo:
sudo -i
passwd
Agora edite a linha abaixo no arquivo /etc/ssh/sshd_config
PermitRootLogin yes
Além disso, é conveniente criar seu próprio nome de usuário alternativo:
Bem-vindo ao SO. Adicione detalhes e contexto suficientes às respostas. Especialmente ao responder uma pergunta antiga com algumas boas respostas
Jayan
isso foi mais útil para mim do que a solução principal. ssh não permite que você faça login como root por padrão.
bmbigbang
2
Nota: Use este método apenas para desenvolvimento local, não é seguro . Você pode definir a senha e a configuração do ssh ao provisionar a caixa. Por exemplo, com debian/stretch64box, este é meu script de provisão:
Isso definirá a senha de root como vagrante permitirá o login de root com senha. Se você estiver usando private_networksay with ip address, 192.168.10.37então você pode ssh comssh [email protected]
Você pode precisar alterar isso echoe os sedcomandos, dependendo do sshd_configarquivo padrão .
Adicionar isso ao Vagrantfilefuncionou para mim. Essas linhas são equivalentes a você inserir sudo su -cada vez que fizer login. Observe que isso requer o reprovisionamento da VM.
config.vm.provision "shell", inline:<<-SHELL
echo "sudo su -">>.bashrc
SHELL
Obrigado pela sua solução muito simples! echo "sudo -s" >> .bashrc seria melhor.
Honiix,
1
Eu sei que esta é uma pergunta antiga, mas olhando para a pergunta original, parece que o usuário só queria executar um comando como root, isso é o que eu preciso fazer quando estava procurando por uma resposta e tropecei na pergunta.
Portanto, vale a pena saber este em minha opinião:
vagranté a senha que está sendo ecoada no comando sudo, porque como todos sabemos, a conta vagrant tem privilégios sudo e quando você sudo, você precisa especificar a senha da conta do usuário, não root .. e, claro, por padrão, o a senha do usuário vagrant é vagrant!
Por padrão, você precisa de privilégios de root para desligar, então acho que desligar é um bom teste.
Obviamente você não precisa especificar um nome de servidor se houver apenas um para aquele ambiente vagrant. Além disso, estamos falando sobre máquina virtual vagrant local para o host, então não há realmente nenhum problema de segurança que eu possa ver.
Tive alguns problemas com o provisionamento ao tentar fazer o login como root, mesmo com PermitRootLogin yes. Eu fiz isso para que apenas o vagrant sshcomando fosse afetado:
# Login as root when doing vagrant ssh
if ARGV[0]=='ssh'
config.ssh.username = 'root'
end
Respostas:
Isso é útil:
para qualquer um que foi pego pela necessidade de definir uma senha de root no vagrant primeiro
fonte
Solução:
adicione o seguinte ao seu
Vagrantfile
:De
vagrant ssh
agora em diante, você fará o login comoroot
e deverá esperar o seguinte:Atualização 23 de junho de 2015: Isso funciona para a versão 1.7.2 também. A segurança de codificação melhorou desde 1.7.0; esta técnica sobrescreve o método anterior que usa uma chave privada conhecida. Esta solução não se destina a ser usada em uma caixa que está acessível publicamente sem medidas de segurança adequadas feitas antes da publicação.
Referência:
fonte
vagrant ssh
? (depois de fazer as alterações descritas) Vagrant versão 1.7.2config.ssh.password
valor. você deve ser capaz de comentar asconfig.ssh.*
linhas recém-adicionadas para acessar sua caixa e, em seguida, alterar a senha de root viasudo passwd root
.mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: Esta caixa define uma senha de root aleatória; pode-sevagrant ssh
e, em seguida,sudo su
fazer root, mas (pelo que posso dizer) as configurações não funcionam em um novovagrant up
usando esta VM.Isso funciona se você estiver no box ubuntu / trusty64:
Assim que estiver na caixa do ubuntu:
Agora você é o usuário root. Você pode atualizar a senha de root conforme mostrado abaixo:
Agora edite a linha abaixo no arquivo
/etc/ssh/sshd_config
Além disso, é conveniente criar seu próprio nome de usuário alternativo:
Espere até que ele peça a senha.
fonte
Se
Vagrantfile
como abaixo:Mas o vagrant ainda pede a senha do root, provavelmente a caixa base que você usou não está configurada para permitir o login do root.
Por exemplo, a caixa oficial ubuntu14.04 não configurada
PermitRootLogin yes
em/etc/ssh/sshd_config
.Então, se você quiser que um box possa fazer o login como root default (somente Vagrantfile, não funcionará mais), você deve:
Configure uma VM por nome de usuário
vagrant
(qualquer nome, exceto root)Faça login e edite o arquivo de configuração sshd.
ubuntu: editar
/etc/ssh/sshd_config
, definirPermitRootLogin yes
outras: ....
(Eu só uso ubuntu, fique à vontade para adicionar soluções alternativas para outras plataformas)
Construa uma nova caixa de base:
isso cria um arquivo
package.box
Adicione essa caixa de base ao vagrant:
então, você precisa usar esta caixa base para construir vm que permite o login automático como root.
Destrua vm original por
vagrant destroy
Edite o original
Vagrantfile
, altere o nome da caixa paraubuntu-root
e o nome de usuário para eroot
, em seguida,vagrant up
crie um novo.Custou-me algum tempo descobrir, é muito complicado na minha opinião. Hope vagrant iria melhorar isso.
fonte
Não se esqueça de que o root tem permissão para fazer login antes !!!
Coloque o código de configuração abaixo no
/etc/ssh/sshd_config
arquivo.fonte
Nota: Use este método apenas para desenvolvimento local, não é seguro . Você pode definir a senha e a configuração do ssh ao provisionar a caixa. Por exemplo, com
debian/stretch64
box, este é meu script de provisão:Isso definirá a senha de root como
vagrant
e permitirá o login de root com senha. Se você estiver usandoprivate_network
say with ip address,192.168.10.37
então você pode ssh comssh [email protected]
Você pode precisar alterar isso
echo
e ossed
comandos, dependendo dosshd_config
arquivo padrão .fonte
Adicionar isso ao
Vagrantfile
funcionou para mim. Essas linhas são equivalentes a você inserirsudo su -
cada vez que fizer login. Observe que isso requer o reprovisionamento da VM.fonte
Eu sei que esta é uma pergunta antiga, mas olhando para a pergunta original, parece que o usuário só queria executar um comando como root, isso é o que eu preciso fazer quando estava procurando por uma resposta e tropecei na pergunta.
Portanto, vale a pena saber este em minha opinião:
vagrant
é a senha que está sendo ecoada no comando sudo, porque como todos sabemos, a conta vagrant tem privilégios sudo e quando você sudo, você precisa especificar a senha da conta do usuário, não root .. e, claro, por padrão, o a senha do usuário vagrant évagrant
!Por padrão, você precisa de privilégios de root para desligar, então acho que desligar é um bom teste.
Obviamente você não precisa especificar um nome de servidor se houver apenas um para aquele ambiente vagrant. Além disso, estamos falando sobre máquina virtual vagrant local para o host, então não há realmente nenhum problema de segurança que eu possa ver.
Espero que isto ajude.
fonte
Tive alguns problemas com o provisionamento ao tentar fazer o login como root, mesmo com
PermitRootLogin yes
. Eu fiz isso para que apenas ovagrant ssh
comando fosse afetado:fonte
Adicione isto ao arquivo vagrant:
fonte