У меня есть новый пользователь в моем vagrant box(trusty64) и я пытаюсь войти в него по ssh. Вместо того, чтобы войти в vagrant
пользователя после vagrant up
, я хочу войти в свое имя пользователя.
Что я уже сделал
- Создал пользователя на гостевой машине.
- Создал ssh-ключ на моем хосте с помощью
ssh-keygen
- Скопировал 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
).