🛠️ 第一步:在本地生成 SSH 密钥对
打开你电脑的终端(Windows 用 PowerShell / CMD,Mac/Linux 用自带终端),执行下面的命令:
bash
ssh-keygen -t ed25519
- 按回车确认保存路径(默认
~/.ssh/id_ed25519即可) - 提示输入 passphrase(密钥密码)时,直接按两次回车留空(这样才是完全免密码;如果设置了 passphrase,还是要输一次密钥密码)
- 第一次回车:默认保存位置,不用改
- 第二次回车:不设密钥密码
- 第三次回车:确认不设密码
第一次弹窗提示:Enter file in which to save the key:
意思:**问你密钥存在哪个位置。**直接回车 = 用默认位置,不用自己乱改路径
第二次弹窗提示:Enter passphrase (empty for no passphrase):
这个不是服务器密码! 这是给你的私钥再加一层解锁密码。
👉 直接回车 = 不给私钥再加密码,以后连服务器全自动免密。
第三次弹窗提示:Enter same passphrase again:
👉 再确认一次,继续回车 = 确认私钥不设密码
执行完,你会得到两个文件:
- 私钥:
~/.ssh/id_ed25519(本地保存,绝对不能泄露) - 公钥:
~/.ssh/id_ed25519.pub(要上传到服务器)

📤 第二步:把公钥上传到服务器
执行下面的命令,把公钥传到你的服务器(替换成你自己的用户名和 IP):
bash
ssh-copy-id lqq@10.176.56.231
- 第一次执行,还是要输入一次服务器的密码
- 执行成功后,公钥就会自动添加到服务器的
~/.ssh/authorized_keys里了
执行时会发生什么?
- 它会自动连接服务器,并把你刚生成的公钥(锁芯)上传上去
- 第一次执行,会让你输入服务器原来的登录密码(就是你平时登录用的那个)
- 输入密码后回车,它会自动把公钥添加到服务器的白名单里
如果你的系统没有 ssh-copy-id 命令,可以手动上传:
bash
type C:\Users\qqqqq\.ssh\id_ed25519.pub | ssh lqq@10.176.56.231 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
或者
bash
# 1. 先登录服务器,创建 .ssh 目录(如果不存在)
ssh lqq@10.176.56.231 "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
# 2. 把本地公钥追加到服务器的 authorized_keys 文件里
cat ~/.ssh/id_ed25519.pub | ssh lqq@10.176.56.231 "cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
两个命令二选一即可。
两个命令的最终效果完全一样,都是把你的公钥安全地上传到服务器并配置好免密登录。区别只是「写法不同」。
第一条命令是一条命令搞定,直接在本地执行,不用分步,适合 Windows 系统。
第二条命令是分两条命令,逻辑上更清晰,先建目录再追加公钥,适合 Linux/Mac 系统,或者想分步确认每一步是否成功的情况。
方案 1:一条命令的完整流程
bash
type C:\Users\qqqqq\.ssh\id_ed25519.pub | ssh lqq@10.176.56.231 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
这条命令里,每一部分都有明确分工:
-
type C:\Users\qqqqq\.ssh\id_ed25519.pub(Windows 命令,相当于 Linux 的cat)把你本地的公钥文件内容读取出来,准备传给服务器。 -
|(管道符) 把前面读取到的公钥内容,传给后面的ssh命令。 -
**
ssh lqq@10.176.56.231 "..."**远程登录服务器,并执行引号里的命令:mkdir -p ~/.ssh:如果服务器上没有.ssh目录,就创建它;如果已经有了,也不会报错。cat >> ~/.ssh/authorized_keys:把管道传过来的公钥内容,追加到服务器的authorized_keys文件里(如果文件不存在,会自动创建)。chmod 600 ~/.ssh/authorized_keys:给这个文件设置权限,确保只有你自己能读写,SSH 才会认这个文件。
方案 2:分两步的写法(Linux/Mac 常用)
bash
# 1. 先登录服务器,创建 .ssh 目录
ssh lqq@10.176.56.231 "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
# 2. 把本地公钥追加到服务器的 authorized_keys 文件里
cat ~/.ssh/id_ed25519.pub | ssh lqq@10.176.56.231 "cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
它和方案 1 的逻辑完全一致,只是把一个命令拆成了两个:
-
第一步
ssh "mkdir -p ~/.ssh && chmod 700 ~/.ssh"单独登录服务器,先把.ssh目录建好,并设置好权限700(只有你自己能读写 / 进入)。这一步在方案 1 里,被合并到了后面的命令里一起执行。 -
**第二步
cat ... | ssh ...**和方案 1 的后半部分完全一样,读取公钥、追加到文件、设置文件权限。
✅ 第三步:测试免密登录
在本地终端里执行:
bash
ssh lqq@10.176.56.231
如果直接登录成功,没有提示输入密码,就说明配置成功了!
⚙️ 第四步:让 Cursor 也用上免密登录
Cursor 是基于 VS Code 内核的,会自动读取系统的 SSH 配置,所以终端能免密后,Cursor 直接就可以免密登录了。如果 Cursor 还是提示输入密码,可以手动配置一下 SSH config:
-
打开本地的 SSH 配置文件:
- Windows:
C:\Users\你的用户名\.ssh\config - Mac/Linux:
~/.ssh/config
- Windows:
-
添加服务器配置(如果已经有就直接修改):
ssh-config
Host lab-server HostName 10.176.56.231 User lqq IdentityFile ~/.ssh/id_ed25519 -
保存后,重启 Cursor,重新连接服务器,就不会再弹密码输入框了。
第一步:配置本地 SSH 快捷方式(让 Cursor 能识别)
-
打开文件资源管理器,在地址栏输入:
plaintext
C:\Users\qqqqq\.ssh -
找到
config文件(如果没有,就新建一个文本文档,改名为config,必须删掉.txt后缀) -
用记事本打开
config文件,复制下面这段内容进去:ssh-config
Host lab-server HostName 10.176.56.231 User lqq IdentityFile C:\Users\qqqqq\.ssh\id_ed25519Host lab-server:这是你给服务器起的别名,Cursor 里会显示这个名字,你也可以改成自己喜欢的名字,比如fdu-labHostName:服务器 IP,和你登录用的一样User:你的服务器用户名lqqIdentityFile:你的私钥文件路径,和你电脑里的路径对应
-
保存文件,关闭记事本。
第二步:在 Cursor 里连接服务器
- 打开 Cursor,按
Ctrl+Shift+P打开命令面板 - 输入
Remote-SSH: Connect to Host...并回车 - 你会看到列表里出现了你刚才配置的
lab-server,点击它 - 第一次连接时,Cursor 会提示你选择服务器的平台,选
Linux就行 - 稍等几秒,Cursor 就会自动连接上服务器,全程不需要输密码!
连接成功后,你就可以像本地一样打开服务器里的项目、编辑文件了。
补充:如果 Cursor 里没显示你的服务器
如果在 Connect to Host... 里看不到 lab-server,按下面步骤排查:
- 检查
config文件有没有后缀名(比如是不是config.txt),如果有,必须改成config - 检查文件路径和用户名有没有写错,尤其是
IdentityFile里的路径,要和你电脑里的私钥路径完全一致 - 重启一下 Cursor,再试一次