Laravel Homestead:Mac 免密登录虚拟机 0 个改进

问题

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

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