【无标题】

🛠️ 第一步:在本地生成 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 里了

执行时会发生什么?

  1. 它会自动连接服务器,并把你刚生成的公钥(锁芯)上传上去
  2. 第一次执行,会让你输入服务器原来的登录密码(就是你平时登录用的那个)
  3. 输入密码后回车,它会自动把公钥添加到服务器的白名单里

如果你的系统没有 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"

这条命令里,每一部分都有明确分工:

  1. type C:\Users\qqqqq\.ssh\id_ed25519.pub (Windows 命令,相当于 Linux 的 cat)把你本地的公钥文件内容读取出来,准备传给服务器。

  2. |(管道符) 把前面读取到的公钥内容,传给后面的 ssh 命令。

  3. **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 的逻辑完全一致,只是把一个命令拆成了两个:

  1. 第一步 ssh "mkdir -p ~/.ssh && chmod 700 ~/.ssh" 单独登录服务器,先把 .ssh 目录建好,并设置好权限 700(只有你自己能读写 / 进入)。这一步在方案 1 里,被合并到了后面的命令里一起执行。

  2. **第二步 cat ... | ssh ...**和方案 1 的后半部分完全一样,读取公钥、追加到文件、设置文件权限。


✅ 第三步:测试免密登录

在本地终端里执行:

bash 复制代码
ssh lqq@10.176.56.231

如果直接登录成功,没有提示输入密码,就说明配置成功了!


⚙️ 第四步:让 Cursor 也用上免密登录

Cursor 是基于 VS Code 内核的,会自动读取系统的 SSH 配置,所以终端能免密后,Cursor 直接就可以免密登录了。如果 Cursor 还是提示输入密码,可以手动配置一下 SSH config:

  1. 打开本地的 SSH 配置文件:

    • Windows: C:\Users\你的用户名\.ssh\config
    • Mac/Linux: ~/.ssh/config
  2. 添加服务器配置(如果已经有就直接修改):

    ssh-config

    复制代码
    Host lab-server
        HostName 10.176.56.231
        User lqq
        IdentityFile ~/.ssh/id_ed25519
  3. 保存后,重启 Cursor,重新连接服务器,就不会再弹密码输入框了。

第一步:配置本地 SSH 快捷方式(让 Cursor 能识别)

  1. 打开文件资源管理器,在地址栏输入:

    plaintext

    复制代码
    C:\Users\qqqqq\.ssh
  2. 找到 config 文件(如果没有,就新建一个文本文档,改名为 config必须删掉 .txt 后缀

  3. 用记事本打开 config 文件,复制下面这段内容进去:

    ssh-config

    复制代码
    Host lab-server
        HostName 10.176.56.231
        User lqq
        IdentityFile C:\Users\qqqqq\.ssh\id_ed25519
    • Host lab-server:这是你给服务器起的别名,Cursor 里会显示这个名字,你也可以改成自己喜欢的名字,比如 fdu-lab
    • HostName:服务器 IP,和你登录用的一样
    • User:你的服务器用户名 lqq
    • IdentityFile:你的私钥文件路径,和你电脑里的路径对应
  4. 保存文件,关闭记事本。


第二步:在 Cursor 里连接服务器

  1. 打开 Cursor,按 Ctrl+Shift+P 打开命令面板
  2. 输入 Remote-SSH: Connect to Host... 并回车
  3. 你会看到列表里出现了你刚才配置的 lab-server,点击它
  4. 第一次连接时,Cursor 会提示你选择服务器的平台,选 Linux 就行
  5. 稍等几秒,Cursor 就会自动连接上服务器,全程不需要输密码

连接成功后,你就可以像本地一样打开服务器里的项目、编辑文件了。


补充:如果 Cursor 里没显示你的服务器

如果在 Connect to Host... 里看不到 lab-server,按下面步骤排查:

  1. 检查 config 文件有没有后缀名(比如是不是 config.txt),如果有,必须改成 config
  2. 检查文件路径和用户名有没有写错,尤其是 IdentityFile 里的路径,要和你电脑里的私钥路径完全一致
  3. 重启一下 Cursor,再试一次
相关推荐
weelinking3 小时前
【企业级】企业级大模型合规实战:数据安全与跨境传输的技术解决方案
数据库·人工智能·机器学习·云计算·github
韭菜钟3 小时前
Windows下,在Github Copilot Chat/CLI中使用obra/superpowers
windows·github·copilot
Larcher7 小时前
# 告别“古法编程”:吴恩达 AI 课程学习笔记与生日贺卡项目实战
前端·github·ai编程
irpywp8 小时前
Rilmazafone :一款可视化 DMG 编辑器,拖拽排版一键生成
开源·编辑器·github
csdn小瓯13 小时前
CI/CD流水线搭建:GitHub Actions + Docker + Railway自动化部署实战
ci/cd·docker·github
不做无法实现的梦~13 小时前
Git 新手到团队协作与 GitHub/GitCode 指南
git·github·gitcode
亦暖筑序13 小时前
Vibe Coding 用久了,代码手感真的会退化——以及我怎么试图解决这个问题
程序员·开源·github
谷哥的小弟13 小时前
(最新版)Git&GitHub实操图文详解教程(02)—安装Git
git·github·安装·配置·下载·图文教程