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,但免密登录通常不设。
相关推荐
BreezeJiang11 小时前
从域名到 Node.js:一次云服务器请求经过了哪些层?
服务器
IT大白鼠13 小时前
Docker 实战 ELKF 日志监控:容器日志全栈收集分析方案
运维·docker·容器
贝锐1 天前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20041 天前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
天远Date Lab1 天前
零信任架构实战:基于天远双人婚姻评估查询构建自动化房产按揭联合审查网关
运维·人工智能·架构·自动化
2601_962074681 天前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器
小张同学a.1 天前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
大模型丫丫1 天前
Hermes Agent:轻量级智能体框架实战指南
大数据·运维·服务器
考虑考虑1 天前
kubectl命令
运维·后端·自动化运维
NJCloud1 天前
Docker 容器技术入门:部署、核心概念与基础命令
运维·docker·容器