window下配置ssh免密登录服务器

window下配置ssh免密登录服务器

本地windows远程登录我的ssh服务器10.10.101.xx服务器,想要每次都免密登录这个服务器.

记录下教程,防止后期忘记,指导我实现这个过程。

教程

二、实践步骤:Windows 上配置 SSH 免密登录

2.1 确认环境要求

  • Windows 版本 :Windows 10 1809 或更高版本(已内置 OpenSSH 客户端)。

  • 服务器确保 sshd_config 中启用公钥认证(默认已启用):

    bash 复制代码
    PubkeyAuthentication yes

2.2 步骤 1:生成 SSH 密钥对

  1. 打开 PowerShell 或 CMD,运行以下命令生成密钥:

    cmd 复制代码
    ssh-keygen -t rsa
    • 按提示选择保存路径(默认为 C:\Users\你的用户名\.ssh\id_rsa)。

    • 设置 passphrase(可直接回车跳过,实现免密登录)。

  2. 生成后,你会得到两个文件:

    • 私钥~/.ssh/id_rsa(本地保留)
    • 公钥~/.ssh/id_rsa.pub(需上传到服务器)

2.3 步骤 2:将公钥上传到服务器

方法一:使用 scp 和手动追加
  1. 上传公钥文件到服务器:

    cmd 复制代码
    scp .ssh/id_rsa.pub 用户名@10.10.100.xx:~/id_rsa.pub
    • 替换 用户名 为你的服务器账户名(如 user)。
  2. 登录服务器并添加公钥:

    bash 复制代码
    ssh 用户名@10.10.100.99
    
    mkdir -p ~/.ssh
    
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    
    chmod 700 ~/.ssh
    
    chmod 600 ~/.ssh/authorized_keys
    
    rm ~/id_rsa.pub

2.4 步骤 3:配置 SSH 客户端(可选)

编辑本地 SSH 配置文件,简化登录命令:

  1. 创建或编辑配置文件:

    powershell

    notepad ~/.ssh/config

  2. 添加以下内容:

    plaintext 复制代码
    Host myserver
    
    ​    HostName 10.10.100.99
    
    ​    User 用户名
    
    ​    IdentityFile ~/.ssh/id_rsa
    • 替换 用户名 为服务器账户名。
  3. 后续登录只需:ssh myserver

2.5 步骤 4:测试免密登录

运行以下命令测试:ssh 用户名@10.10.100.99

或使用配置别名:ssh myserver

  • 如果无需输入密码即可登录,说明配置成功!

原理

一、原理讲解:SSH 公钥认证如何工作?

1.1 非对称加密基础

SSH 免密登录基于 非对称加密 (Asymmetric Cryptography),使用一对密钥:

  • 公钥(Public Key) :可公开分享,用于加密或验证身份。
  • 私钥(Private Key) :必须严格保密,用于解密或证明身份。

1.2 SSH 登录流程

  1. 客户端生成密钥对 :在本地生成公钥和私钥。

  2. 上传公钥到服务器 :将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。

  3. 登录时的身份验证 :

    • 服务器发送一个随机挑战(Challenge)。
    • 客户端用私钥加密该挑战并返回。
    • 服务器用公钥解密,验证身份,无需密码即可登录。

1.3 安全性说明

  • 私钥文件(如 id_rsa)必须妥善保管,避免泄露。
  • 服务器上的 ~/.ssh/authorized_keys 文件权限需严格限制(如 600),否则 SSH 会拒绝登录。
  • 可选择为私钥设置 passphrase,但免密登录通常不设。
相关推荐
SkyWalking中文站17 小时前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ20 小时前
Kubeneters HA Cluster部署
运维
江华森1 天前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森1 天前
Matplotlib 数据绘图基础入门
运维
江华森1 天前
NumPy 数值计算基础入门
运维
乘云数字DATABUFF5 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者7 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
荣--7 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森7 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜8 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https