無密碼 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 盒子內部使用您的 SSH 轉發代理:

sudo su chsc
exit

在進行此類變更時,~vagrant/.bashrc如果犯了錯誤,您可能會面臨被鎖在 shell 之外的風險。我建議保持打開的終端以 登錄vagrant,直到確保一切正常。如果出現問題,只需重新命名 .bashrc ( mv .bashrc .bashrc-bak) 即可。

相關內容