Eu tenho um novo usuário em minha caixa vagrant (trusty64) e estou tentando fazer ssh nele. Em vez de fazer login no vagrant
usuário depois vagrant up
, quero fazer login com meu nome de usuário.
O que eu fiz até agora
- Criei um usuário na minha máquina convidada.
- Criei a chave ssh no meu host usando
ssh-keygen
- Copiou a chave ssh para o convidado usando
ssh-copy-id -p 2222 -i [email protected]
e a parte do Vagrantfile fica assim
config.vm.box = "ubuntu/trusty64"
config.ssh.username = "shash"
config.ssh.forward_agent = true
config.ssh.private_key_path = "~/.ssh/authorized_keys"
Posso usar para fazer login diretamente, mas quando dou continuo recebendo o seguinte errossh -p '2222' '[email protected]'
vagrant up
default: Warning: Connection timeout. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
Qualquer ajuda para resolver isso é muito apreciada. Obrigado!
Responder1
config.ssh.private_key_path
deve apontar para o seu arquivo de chave privada (normalmente ~/.ssh/id_rsa
— o nome do arquivo é exibido quando você executa ssh-keygen
),não ~/.ssh/authorized_keys
.
Responder2
Uma maneira alternativa de fazer isso é adicionar o seguinte na parte inferior de ~vagrant/.bashrc
:
ssh chsc
exit
Se quiser evitar o problema de criar e instalar uma chave SSH, você pode usar su
; no entanto, isso não permite que ssh
dentro da caixa do Vagrant use seu agente de encaminhamento SSH se você precisar se conectar a servidores externos de dentro da caixa:
sudo su chsc
exit
Ao fazer tais alterações, ~vagrant/.bashrc
você corre o risco de ficar fora do shell se cometer um erro. Eu recomendo manter um terminal aberto logado como vagrant
, até ter certeza de que tudo funciona. Se algo der errado, basta renomear .bashrc( mv .bashrc .bashrc-bak
).