Laravel Homestead:Mac 免密登录虚拟机
问题
如何在 Mac 下不需要密码直接登录 Homestead 虚拟机?
答案
可以使用 SSH 公钥认证机制,下面是详细设置的步骤。
1. 主机生成 SSH Key
接下来我们来生成 SSH Key,开始之前,我们先使用以下命令来检查 主机 上是否已经生成过 SSH Key:
> ls -al ~/.ssh
存在 id_rsa
和 id_rsa.pub
的话,请跳过以下生成 SSH 的步骤继续阅读 2. 配置信息 的内容。如果显示的是空目录,否则使用以下方法来生成 SSH Key,请将 your_email@example.com
替换为你的邮箱:
> ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.
命令行会提示让你指定秘钥的名称,按回车键 将 SSH Key 保存到默认文件名即可:
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
接下来会询问你为 SSH Key 设置密码,按回车键 即可,默认为空密码:
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
可以都选择默认,也就是直接敲击几个 Enter
键即可。这时候我们再检查一下:
> ls -al ~/.ssh
可以看到以下两个文件:
id_rsa
—— SSH 秘钥的 私钥 (Private Key)id_rsa.pub
—— SSH 秘钥的 公钥 (Public Key)
2. 配置信息
Homestead 配置选项 里有一个 authorize
选项,可指派登录虚拟机授权连接的公钥文件,此文件填写的是主机上的公钥文件地址:
~/Homestead/Homestead.yaml
.
.
.
authorize: ~/.ssh/id_rsa.pub
.
.
.
虚拟机初始化时,此文件里的内容会被复制存储到虚拟机的 /home/vagrant/.ssh/authorized_keys
文件中,从而实现 SSH 免密码登录。一般默认填写即可。
3. 应用修改
在 主机 中使用以下命令应用修改到 Homestead 虚拟机中:
> vagrant reload --provision
测试一下
进入 Homestead 目录:
> cd ~/Homestead
> vagrant ssh
或者:
> ssh vagrant@127.0.0.1 -p 2222
推荐文章: