我的 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 盒子內部使用您的 SSH 轉發代理:
sudo su chsc
exit
在進行此類變更時,~vagrant/.bashrc
如果犯了錯誤,您可能會面臨被鎖在 shell 之外的風險。我建議保持打開的終端以 登錄vagrant
,直到確保一切正常。如果出現問題,只需重新命名 .bashrc ( mv .bashrc .bashrc-bak
) 即可。