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,但免密登录通常不设。
相关推荐
不爱学英文的码字机器几秒前
持续交付的进化:从DevOps到AI驱动的IT新动能
运维·人工智能·devops
Lw老王要学习34 分钟前
Linux容器篇、第一章_02Rocky9.5 系统下 Docker 的持久化操作与 Dockerfile 指令详解
linux·运维·docker·容器·云计算
_可乐无糖1 小时前
EC2安装WebRTC sdk-c环境、构建、编译
服务器·webrtc·aws
斯普信专业组1 小时前
Kafka主题运维全指南:从基础配置到故障处理
运维·分布式·kafka
倔强的石头1062 小时前
【Linux指南】用户与系统基础操作
linux·运维·服务器
云上艺旅2 小时前
centos升级内核
linux·运维·centos
kaikaile19952 小时前
centos开启samba服务
linux·运维·centos
好多知识都想学2 小时前
Centos 7 服务器部署多网站
linux·服务器·centos
好多知识都想学2 小时前
centos 7 部署awstats 网站访问检测
linux·运维·centos
藥瓿亭3 小时前
K8S认证|CKS题库+答案| 10. Trivy 扫描镜像安全漏洞
linux·运维·服务器·云原生·容器·kubernetes·cks