Laravel Homestead:Windows 免密登录虚拟机 1 个改进

问题

如何在 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_rsaid_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
本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!