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,但免密登录通常不设。
相关推荐
平生不喜凡桃李6 分钟前
浅谈 Linux 中 namespace 相关系统调用
java·linux·服务器
无忧智库36 分钟前
智慧医院的“新基建”:从顶层设计到全栈式智能运维的深度解构(PPT)
大数据·运维
虾..1 小时前
多路复用 --- select系统调用
服务器·数据库·sql
杨云龙UP2 小时前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
舰长1152 小时前
linux系统服务器加固1、中风险 未设置登录失败处理功能和登录连接超时处理功能。2、中风险 未限制默认账户的访问权限。3、中风险 未实现管理用户的权限分离。
linux·运维·服务器
mounter6252 小时前
Linux 7.0 重磅更新:详解 nullfs 如何重塑根文件系统挂载与内核线程隔离
linux·运维·服务器·kernel
-Da-3 小时前
Unix哲学:一切皆文件与网络通信的统一抽象
服务器·unix
江南风月3 小时前
日志审计系统WGLOG支持syslog吗
运维·网络·日志审计
A.A呐4 小时前
【Linux第十三章】缓冲区
linux·服务器
想唱rap4 小时前
Linux线程
java·linux·运维·服务器·开发语言·mysql