云计算百科
云计算领域专业知识百科平台

PHPStorm配置SSH密钥对远程连接服务器同步代码教程,方便远程编辑服务器项目

在使用 PHPStorm 进行远程开发时,通过 SSH 密钥对的方式可以实现更加安全的连接,避免因服务器IP限制,本地IP发生变化,导致频繁的配置IP。我将从生成密钥对到在 PHPStorm 中配置的完整流程。


1. 背景与需求分析

PHPStorm 提供了对远程服务器的便捷支持,而 SSH 密钥对(Public Key Authentication)是一种更加安全高效的身份验证方式。

免去了配置账号密码的烦恼。

通过配置密钥对,我们可以实现:

  • 无密码登录:提高开发效率,避免重复输入密码。

  • 增强安全性:相比传统的密码登录,密钥对不容易被暴力破解。

  • IP更换烦恼:有的服务器为了安全,只有限定的IP可以访问,这样可以解决IP频繁更换的问题。

下面我们将分步骤完成以下内容:

  • 在服务器上生成密钥对。

  • 将密钥配置到本地环境。

  • 在 PHPStorm 中完成配置并测试连接。

  • 在 PHPStorm同步代码配置。

  • 2. 首先理解下SSH密钥对

    什么是 SSH 密钥对?

    SSH 密钥对就像一对“锁”和“钥匙”,用来保证你的电脑和服务器之间的通信是安全的。它有两部分:

    • 公钥(Public Key):相当于一把“锁”,可以公开放在服务器上,任何人都能看到。

    • 私钥(Private Key):相当于一把“钥匙”,只能你自己保管,不能给别人。

    服务器通过“公钥”来检查你的“钥匙”是不是匹配。如果匹配,就让你进去;如果不匹配,就拒绝访问。


    用生活例子来解释

  • 安装锁: 你把“公钥”这把锁装到服务器的门上,就像你把家里的门换成了只有你有钥匙能打开的锁。

  • 钥匙只有你有: 私钥是你独有的钥匙,别人没有,就算看到锁也打不开。

  • 开门验证: 每次连接服务器,就像你用钥匙开门。服务器会检查你的钥匙是否能打开它的锁。如果能打开,说明是你本人,就允许你进入。


  • 为什么要用密钥对?

    普通的登录方式需要输入密码,但密码可能会被偷看或猜到。而密钥对的“钥匙”非常复杂,几乎不可能被破解,所以更安全!


    图解 SSH 密钥对(简单可视化)

    密钥对的工作原理

    你的电脑 (私钥) —————》》》匹配成功!————-→ 服务器 (公钥)

    场景:

  • 你家有一个门(服务器)。

  • 你装了一把“智能锁”(公钥)。

  • 你拿着一把“唯一的钥匙”(私钥)。

    • 公钥安装在服务器上,保证只有正确的钥匙才能开门。

    • 私钥保存在电脑上,用于打开这把锁。


    如何使用密钥对?

  • 生成密钥对: 你用电脑生成一对锁和钥匙(公钥和私钥)。

    ssh-keygen -t rsa

  • 安装锁: 把公钥(锁)放到服务器上。

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

  • 用钥匙开门: 下次登录时,只需要你的私钥,服务器会自动验证你是否有权限。


  • 问题回答:

    问:如果别人偷走了我的钥匙怎么办? 答:如果有人偷了你的私钥(钥匙),他就能打开你的锁,所以私钥一定要妥善保管,不要让别人看到。

    问:没有私钥的人能打开我的服务器吗? 答:不能!没有私钥,就像没有钥匙一样,打不开门。

    问:如果我丢了钥匙怎么办? 答:你可以重新生成一对密钥,换把新的锁(公钥),然后删掉服务器上的旧锁。


    3. 在服务器上生成 SSH 密钥对

    首先,我们需要在目标服务器上生成 SSH 密钥对。

    2.1 登录服务器

    使用 SSH 客户端工具(如终端、Putty)登录到远程服务器:

    ssh <username>@<server_ip>

    2.2 生成密钥对

    在服务器上执行以下命令生成密钥对:

    ssh-keygen -t rsa -b 1024 -C "your_email@example.com"

    参数详解:
    • -t rsa:指定密钥类型为 RSA。

    • -b 1024:设置密钥长度为 4096 位(更安全)。512-4096都可以

    • -C "your_email@example.com":为密钥添加注释,方便管理。

    执行后,系统会提示输入密钥的保存路径和密码:

  • 保存路径:建议按回车键使用默认路径(~/.ssh/id_rsa)。

  • 密码:此为可选项,输入密码可为私钥增加保护层,若无需设置密码可直接回车。

  • 2.3 检查密钥生成结果

    生成完成后,密钥文件默认存放在 ~/.ssh 目录下,包含以下两个文件:

    • 私钥:~/.ssh/id_rsa

    • 公钥:~/.ssh/id_rsa.pub

    使用以下命令查看公钥内容:

    cat ~/.ssh/id_rsa.pub

    基于上面的SSH的理解,我们配置到本地的应该是私钥

    使用以下命令查看私钥内容:

    cat ~/.ssh/id_rsa

    将输出的内容复制下来,保存到你本地的一个文件,稍后在 PHPStorm 配置中会用到。


    3. 配置密钥对的访问权限

    为确保密钥的使用安全性,需要设置 .ssh 目录和密钥文件的权限。

    执行以下命令:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa.pub


    4. 配置 PHPStorm 使用 SSH 私钥

    在 PHPStorm 中完成密钥对配置,具体操作步骤如下:

    4.1 打开 SSH 配置窗口

  • 打开 PHPStorm。

  • 进入 File > Settings > Tools > SSH Configurations。

  • 我的是中文版的,如下截图:

  • 点击 + 添加新的 SFTP 配置。

  • image.png

  • 点击 … 添加新的 SSH 配置。

  • image.png

    5.点击 + 添加新的 SSH 配置。

    image.png

    4.2 配置 SSH 参数

    在弹出的配置窗口中填写以下内容:

    • **主机 (Host)**:服务器地址(如 192.168.1.1)。

    • **端口 (Port)**:默认值为 22。

    • **用户名 (User name)**:登录服务器的用户名。

    • 身份验证类型:选择 密钥对 OpenSSH 或 PuTTY。

    • **私钥文件 (Private key file)**:选择从服务器下载到本地的私钥文件(如 id_rsa)。

    • **密码短语 (Passphrase)**:若在生成密钥时设置了密码,则在此输入。

    配置完成后,点击 “测试连接” 按钮,若显示连接成功,则说明配置正确。

    image.png


    5. 将公钥添加到服务器的 authorized_keys

    为了使服务器信任该密钥对,我们需要将生成的公钥添加到服务器的 authorized_keys 文件中。

    执行以下命令:

    echo "公钥内容" >> ~/.ssh/authorized_keys

    随后,确保文件权限正确:

    chmod 600 ~/.ssh/authorized_keys


    6. 测试连接与使用

    完成上述配置后,在 PHPStorm 中可以直接通过 SSH 连接到服务器,进行文件同步、远程开发或调试。

    目录映射配置

    根路径一定要选择你项目所在的路径,这样才能做好映射,之后可以方便的同步数据。

    image.png

    本地改动传到服务器

    image.png

    服务器文件下载到本地

    image.png

    注意:如果你没做好映射,是不会出现这个菜单的。

    7. 常见问题与解决方案

    问题 1:测试连接失败

    • 检查服务器的 SSH 服务是否正常运行: sudo systemctl status sshd
    • 确保防火墙规则允许端口 22。

    问题 2:无法读取私钥文件

    • 确保本地私钥文件权限设置正确: chmod 600 ~/.ssh/id_rsa

    问题 3:提示 “Permission denied”

    • 确保公钥已经正确添加到服务器的 authorized_keys 文件。


    8. 总结

    通过本文的教程,我们成功完成了以下操作:

  • 在服务器上生成 SSH 密钥对。

  • 将密钥正确配置到 PHPStorm 中。

  • 使用密钥对实现无密码远程连接。

  • SSH 密钥对不仅提升了开发效率,也显著增强了服务器连接的安全性,是现代远程开发的最佳实践之一。希望本文对您有所帮助!


    更多技术内容,欢迎关注我们的分享!

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » PHPStorm配置SSH密钥对远程连接服务器同步代码教程,方便远程编辑服务器项目
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!