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 @
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 密钥对不仅提升了开发效率,也显著增强了服务器连接的安全性,是现代远程开发的最佳实践之一。希望本文对您有所帮助!
更多技术内容,欢迎关注我们的分享!