当前位置: 首页 > news >正文

windows本机vscode通过ssh免密登录远程linux服务器 git push/pull 免密

文章目录

  • 免密登录服务器
      • 一、前置条件
      • 二、步骤 1:本地生成 SSH 密钥对
        • 1. 打开本地终端(或命令提示符)
        • 2. 生成密钥对
        • 3. 确认密钥存储路径(默认即可)
        • 4. 可选:设置密钥密码(推荐)
        • 5. 密钥生成成功
      • 三、步骤 2:将本地公钥上传到远程服务器
        • 方法 1:自动上传(推荐,最简单)
        • 执行后验证:
        • 方法 2:手动上传(适用于 `ssh-copy-id` 不可用的场景)
      • 四、步骤 3:验证 SSH 免密登录(可选但推荐)
      • 五、步骤 4:VS Code 安装并配置 Remote - SSH 插件
        • 1. 安装插件
        • 2. 配置 SSH 连接
        • 3. 连接远程服务器
      • 六、步骤 5:在 VS Code 中操作远程服务器
      • 常见问题排查
  • git push免密

免密登录服务器

要在 VS Code 中通过 SSH 免密登录远程 Linux 服务器,核心是 配置本地与服务器的 SSH 密钥认证(替代密码登录),再通过 VS Code 的 Remote - SSH 插件连接。以下是详细步骤,适用于 Windows/macOS/Linux 本地环境:

一、前置条件

  1. 本地已安装 VS Code(官网下载)。
  2. 本地已安装 SSH 客户端(关键):
    • Windows 10/11:默认自带 OpenSSH 客户端(设置 → 应用 → 可选功能 → 检查“OpenSSH 客户端”,未安装则手动添加);
    • macOS/Linux:系统自带 SSH 客户端,无需额外安装。
  3. 远程 Linux 服务器:
    • 已开启 SSH 服务(sshd 进程运行,默认端口 22);
    • 知道服务器的 IP 地址(如 192.168.1.100)和 登录用户名(如 root 或普通用户 ubuntu)。

二、步骤 1:本地生成 SSH 密钥对

SSH 免密登录的核心是“公钥存服务器,私钥存本地”,本地通过私钥认证身份,无需输入密码。

1. 打开本地终端(或命令提示符)
  • Windows:按 Win + R 输入 cmdPowerShell
  • macOS/Linux:直接打开终端(Terminal)。
2. 生成密钥对

在终端中执行以下命令(无需修改,直接回车):

ssh-keygen -t ed25519 -C "你的备注(如邮箱、服务器IP)"
  • 说明:ed25519 是更安全的密钥算法(推荐);若服务器较老不支持,可改用 rsa 算法:ssh-keygen -t rsa -b 4096 -C "备注"
3. 确认密钥存储路径(默认即可)

执行命令后会提示:

Enter file in which to save the key (/用户/你的用户名/.ssh/id_ed25519):

直接按回车(使用默认路径,避免后续配置麻烦)。

4. 可选:设置密钥密码(推荐)

接着会提示设置“密钥密码”(passphrase):

Enter passphrase (empty for no passphrase):
  • 建议设置一个密码(保护本地私钥,即使私钥泄露也需密码才能使用);
  • 若不想设置,直接按两次回车跳过。
5. 密钥生成成功

终端会显示密钥存储路径,默认路径:

  • Windows:C:\Users\你的用户名\.ssh\(含 id_ed25519 私钥 + id_ed25519.pub 公钥);
  • macOS/Linux:~/.ssh/(同上)。

三、步骤 2:将本地公钥上传到远程服务器

需把本地的 公钥文件(id_ed25519.pub 复制到远程服务器的 ~/.ssh/authorized_keys 文件中(这是 SSH 密钥认证的核心配置)。

方法 1:自动上传(推荐,最简单)

在本地终端执行以下命令(替换占位符):

ssh-copy-id -i ~/.ssh/id_ed25519.pub 服务器用户名@服务器IP 

若powershell不支持ssh-copy-id

type C:\Users\Leo\.ssh\id_rsa_new.pub | ssh -p 22 lhr@115.190.213.213 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
  • 示例:若服务器 IP 是 192.168.1.100,用户是 ubuntu,则命令为:
    ssh-copy-id -i ~/.ssh/id_ed25519.pub ubuntu@192.168.1.100
    
执行后验证:
  1. 首次连接会提示“是否信任服务器”,输入 yes 回车;
  2. 接着输入 远程服务器的登录密码(仅这一次,后续免密);
  3. 提示 Number of key(s) added: 1 则成功。
方法 2:手动上传(适用于 ssh-copy-id 不可用的场景)
  1. 本地终端查看公钥内容(复制输出的全部文本):

    cat ~/.ssh/id_ed25519.pub
    

    输出格式类似:ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABAQ... 你的备注

  2. 登录远程服务器(输入密码):

    ssh 服务器用户名@服务器IP
    
  3. 在服务器上执行以下命令(确保 .ssh 目录存在且权限正确):

    # 创建 .ssh 目录(若已存在则忽略)
    mkdir -p ~/.ssh
    # 设置目录权限(必须 700,否则 SSH 拒绝识别)
    chmod 700 ~/.ssh
    # 将本地公钥内容追加到 authorized_keys 文件(关键)
    echo "复制的本地公钥文本" >> ~/.ssh/authorized_keys
    # 设置文件权限(必须 600,否则 SSH 拒绝识别)
    chmod 600 ~/.ssh/authorized_keys
    
  4. 退出服务器:exit

四、步骤 3:验证 SSH 免密登录(可选但推荐)

在本地终端执行以下命令,若无需输入密码即可登录服务器,则密钥配置成功:

ssh 服务器用户名@服务器IP
  • 若之前设置了“密钥密码”,首次登录会提示输入(可勾选“保存到钥匙串”,后续无需重复输入);
  • 登录成功后,执行 exit 退出服务器,继续配置 VS Code。

若仍提示输入密码,则

# 用 -i 参数指定你的私钥文件路径
ssh -i 私钥文件路径 -p 22 user@ip

五、步骤 4:VS Code 安装并配置 Remote - SSH 插件

1. 安装插件
  • 打开 VS Code,点击左侧「扩展」(或按 Ctrl+Shift+X);
  • 搜索 Remote - SSH(作者:Microsoft),点击「安装」;
  • 安装完成后,左侧会出现「远程资源管理器」图标(类似「><」)。
2. 配置 SSH 连接
  1. 点击 VS Code 左下角的「><」图标(打开远程连接菜单),选择「Connect to Host…」→「Configure SSH Hosts…」;
  2. 选择 SSH 配置文件路径(默认即可,无需修改):
    • Windows:C:\Users\你的用户名\.ssh\config
    • macOS/Linux:~/.ssh/config
  3. 打开 config 文件后,添加以下配置(替换占位符):
    Host 服务器别名(自定义,如 my-server)HostName 服务器IP(如 192.168.1.100)User 服务器用户名(如 ubuntu)IdentityFile 本地私钥路径(默认无需修改,自动识别)# 可选:若服务器 SSH 端口不是 22(如 2222),添加以下行# Port 2222
    
    示例配置:
    Host my-linux-serverHostName 192.168.1.100User ubuntuPort 22IdentityFile C:\Users\xxx\.ssh\id_rsa  # 绝对路径IdentityFile ~/.ssh/id_rsa # 相对路径
    
  4. 保存文件(Ctrl+S)。
3. 连接远程服务器
  1. 再次点击左下角「><」图标,选择「Connect to Host…」,此时会显示你配置的「服务器别名」(如 my-linux-server);
  2. 点击别名,VS Code 会自动启动 SSH 连接:
    • 若之前设置了“密钥密码”,会提示输入(勾选“Remember me”后续免输);
    • 首次连接会提示“是否信任服务器指纹”,点击「Continue」;
  3. 连接成功后,VS Code 左下角会显示「SSH: 服务器别名」,表示已进入远程环境。

六、步骤 5:在 VS Code 中操作远程服务器

连接成功后,你可以:

  1. 点击「文件」→「打开文件夹」,选择远程服务器上的目录(如 /home/ubuntu/project),即可编辑远程文件;
  2. 打开 VS Code 终端(`Ctrl+``),直接操作远程服务器的命令行;
  3. 安装远程插件(如 Python、C/C++ 插件),直接在 VS Code 中调试远程代码。

常见问题排查

  1. 免密登录失败,仍提示输入密码

    • 检查服务器 ~/.ssh 目录权限:必须是 700ls -ld ~/.ssh 查看);
    • 检查服务器 authorized_keys 文件权限:必须是 600ls -l ~/.ssh/authorized_keys 查看);
    • 检查本地公钥是否正确追加到服务器的 authorized_keys(无多余空格、换行)。
  2. VS Code 连接超时

    • 确认服务器 IP、端口正确(默认 22,若修改过需在 config 中指定 Port);
    • 检查服务器防火墙是否开放 SSH 端口(如 ufw allow 22 或关闭防火墙测试);
    • 确认本地网络能 ping 通服务器(ping 服务器IP)。
  3. Windows 找不到 ssh-copy-id 命令

    • 升级 Windows 10/11 到最新版本,或手动安装 OpenSSH 客户端(设置 → 应用 → 可选功能 → 添加“OpenSSH 客户端”);
    • 若仍不可用,直接用「方法 2:手动上传公钥」。

通过以上步骤,即可实现 VS Code 与远程 Linux 服务器的免密 SSH 连接,无缝操作远程文件和代码~

git push免密

  1. 家目录
git config --global credential.helper store

执行之后会在.gitconfig文件中增加helper = store

[credential]helper = store
  1. 项目目录
git pull

提示输入账号密码,输完这一次以后就不再需要,并且会在根目录生成一个.git-credentials文件。

cat .git-credentials

4、之后pull/push代码都不再需要输入账号密码

http://www.dtcms.com/a/581774.html

相关文章:

  • go语言网站开发教程门户网站是如何做引流的
  • SG-ECAT_S-TCP(EtherCAT 转 ModbusTCP 网关)
  • 分享一些在C++中使用异常处理的最佳实践
  • 物流网站怎么开网络最好的运营商
  • 学习随笔-async和await
  • 祁阳做网站河南工程建设验收公示网
  • PCIe协议分析仪-VIAVI设置抓取ASPM协商过程
  • ThreadLocal 相关知识点
  • OSG新版GLSL语法全解析
  • 智守边界:入侵报警系统的主动防御时代
  • 为什么网站建设起来搜素不到电子商务网站建设考题
  • 济南网站建设是什么合肥seo网络营销推广
  • 【Hot100|4-LeetCode 283. 移动零 】
  • 操作系统拿着文件名查找磁盘文件的全过程
  • 【Hot100 | 6 LeetCode 15. 三数之和】
  • 哪些网站用wordpress建设银行网站总是崩溃
  • c#实现redis的调用与基础类
  • 【深度学习新浪潮】什么是投机解码?大模型推理优化的核心技术解析(含代码实操)
  • Verilog函数function
  • 做电商宠物带哪个网站最好网络营销方法的选择
  • 超融合系统七大核心技术详解
  • Spring Boot 2.7.18(最终 2.x 系列版本)1 - 技术选型:连接池技术选型对比;接口文档技术选型对比
  • 从0到1做一个“字母拼词”Unity小游戏(含源码/GIF)- 单词字母打乱及字母拼词填空逻辑
  • 记一次 Maven 3.8.3 无法下载 HTTP 仓库依赖的排查历程
  • Linux网络初始及网络通信基本原理
  • 免费学软件的自学网站微信app制作
  • Foundation 模态框
  • 赣州深科网站建设深圳商城网站设计电话
  • vllm学习笔记之 PD分离 kv connector
  • 有经验的佛山网站设计东莞华为外包公司