Беспарольный ssh ​​для vagrant для загрузки другого пользователя после vagrant ssh

Беспарольный ssh ​​для vagrant для загрузки другого пользователя после vagrant ssh

У меня есть новый пользователь в моем vagrant box(trusty64) и я пытаюсь войти в него по ssh. Вместо того, чтобы войти в vagrantпользователя после vagrant up, я хочу войти в свое имя пользователя.

Что я уже сделал

  1. Создал пользователя на гостевой машине.
  2. Создал ssh-ключ на моем хосте с помощьюssh-keygen
  3. Скопировал ssh-ключ в гостевую систему, используяssh-copy-id -p 2222 -i [email protected]

и часть Vagrantfile выглядит так

  config.vm.box = "ubuntu/trusty64"
  config.ssh.username = "shash"
  config.ssh.forward_agent = true
  config.ssh.private_key_path = "~/.ssh/authorized_keys"

Я могу войти в систему напрямую, но когда я ввожу данные, я получаю следующую ошибкуssh -p '2222' '[email protected]'vagrant up

default: Warning: Connection timeout. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...

Любая помощь в решении этого вопроса будет очень ценна. Спасибо!

решение1

config.ssh.private_key_pathдолжен указывать на ваш файл закрытого ключа (обычно ~/.ssh/id_rsa— имя файла отображается при запуске ssh-keygen),нет ~/.ssh/authorized_keys.

решение2

Альтернативный способ сделать это — добавить следующее в конец ~vagrant/.bashrc:

ssh chsc
exit

Если вы хотите избежать проблем с созданием и установкой ключа SSH, вы можете использовать suвместо этого ; однако это не позволит sshвнутри Vagrant box использовать ваш SSH forward agent, если вам нужно подключиться к внешним серверам изнутри box:

sudo su chsc
exit

При внесении таких изменений ~vagrant/.bashrcвы рискуете заблокировать себя из оболочки, если допустите ошибку. Я рекомендую держать открытым терминал, войдя в систему как vagrant, пока вы не убедитесь, что все работает. Если что-то пойдет не так, просто переименуйте .bashrc ( mv .bashrc .bashrc-bak).

Связанный контент