Laravel Homestead:Windows 免密登录虚拟机
问题
如何在 Windows 下不需要密码直接登录 Homestead 虚拟机?
答案
可以使用 SSH 公钥认证机制,下面是详细设置的步骤。
1. 安装 Git for Windows
首先需要下载并安装 Git for Windows,我们将会使用 Git Shell 来生成 SSH Key,Windows 主流的 Shell 版本应该都可以,这里推荐 Git for Windows。
Windows 下,~
目录代表着 C:\Users\你的用户名
,而 ~/Homestead
代表着 C:\Users\你的用户名\Homestead
目录,类似:
注:我们把 Homestead 放在
~/Homestead
路径下,为方便后面的讲解,请保持一致。
2. 主机生成 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
查看的话,会出现:
SSH 秘钥的两个文件:
id_rsa
—— SSH 秘钥的 私钥 (Private Key)id_rsa.pub
—— SSH 秘钥的 公钥 (Public Key)
3. 配置信息
Homestead 配置选项 里有一个 authorize
选项,可指派登录虚拟机授权连接的公钥文件,此文件填写的是主机上的公钥文件地址:
~/Homestead/Homestead.yaml
.
.
.
authorize: ~/.ssh/id_rsa.pub
.
.
.
虚拟机初始化时,此文件里的内容会被复制存储到虚拟机的 /home/vagrant/.ssh/authorized_keys
文件中,从而实现 SSH 免密码登录。一般默认填写即可。
4. 应用修改
在 主机 中使用以下命令应用修改到 Homestead 虚拟机中:
> vagrant reload --provision
测试一下
进入 Homestead 目录:
> cd ~/Homestead
> vagrant ssh
或者:
> ssh vagrant@127.0.0.1 -p 2222
推荐文章: