我正在尝试使用 SSH 从我的 MacBook 连接到 Vagrant 机器。
vagrant ssh
工作正常,但我想知道为什么当我ssh
从 Mac 终端使用时它会失败。
这是它抛出的错误:
Raghavendras-MacBook-Pro:~ raghu$ ssh -p 2222 vagrant@127.0.0.1
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Run Code Online (Sandbox Code Playgroud)
因为您正在发出“普通”ssh
命令,因此您正在尝试使用默认id_rsa
+id_rsa.pub
密钥对登录到 VM 。
除非您~/.ssh/id_rsa.pub
从 MacBook明确添加到VM 上~/.ssh/accepted_keys
的vagrant
帐户,否则您的默认密钥对对 VM 而言是未知的,并且会被拒绝并显示“权限被拒绝”消息。
您可以使用 Vagrant 创建并在创建时注入机器的密钥。从项目目录运行以下命令,替换<machine_id>
为您在 Vagrantfile 中配置的名称(也假设您使用的是 VirtualBox,否则也要更改该部分路径):
ssh -i .vagrant/machines/<machine_id>/virtualbox/private_key -p 2222 vagrant@127.0.0.1
Run Code Online (Sandbox Code Playgroud)