Ssh sem senha para vagrant para carregar outro usuário após vagrant ssh

Ssh sem senha para vagrant para carregar outro usuário após vagrant ssh

Eu tenho um novo usuário em minha caixa vagrant (trusty64) e estou tentando fazer ssh nele. Em vez de fazer login no vagrantusuário depois vagrant up, quero fazer login com meu nome de usuário.

O que eu fiz até agora

  1. Criei um usuário na minha máquina convidada.
  2. Criei a chave ssh no meu host usandossh-keygen
  3. Copiou a chave ssh para o convidado usandossh-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_pathdeve 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 sshdentro 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/.bashrcvocê 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).

informação relacionada