找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2538

积分

0

好友

336

主题
发表于 3 小时前 | 查看: 2| 回复: 0

你是否厌倦了每次连接Linux服务器都要反复输入密码?尤其是在执行自动化脚本或频繁登录多台服务器时,手动输入密码不仅效率低下,也存在安全隐患。本文将详细介绍在Windows环境下,如何通过配置SSH密钥对,实现安全、快捷的免密登录。

准备工作

在开始配置之前,我们需要确保本地环境已就绪。

1. 安装 SSH 客户端

对于Windows 10/11的用户,系统已内置了OpenSSH客户端。如果你的系统尚未启用,可以按照以下路径手动开启:

设置 → 应用 → 可选功能 → 添加功能 → OpenSSH 客户端

启用后,你就可以在PowerShell或CMD中使用ssh命令了。

2. 生成 SSH 密钥对

密钥对是免密登录的核心,它包括一个私钥(严格保密)和一个公钥(可公开分发)。打开PowerShell或CMD,执行以下命令来生成一对强度较高的RSA密钥:

ssh-keygen -t rsa -b 4096

执行命令后,程序会提示你选择密钥的保存路径。直接连续按三次回车,即可接受默认路径(通常为 C:\Users\你的用户名\.ssh\)并为密钥对设置空密码。当然,从安全性角度出发,为私钥设置一个强密码是更佳实践。

免密登录配置三步走

生成密钥对后,下一步就是将公钥部署到目标Linux服务器上。这里提供三种方法,你可以根据喜好和服务器环境选择。

方法一:使用 ssh-copy-id(最便捷)

如果你使用的OpenSSH客户端版本较新且支持该命令,这是最推荐的方式。只需在本地终端执行:

ssh-copy-id root@175.27.254.137

系统会提示你输入一次服务器root用户的密码。验证成功后,你的公钥会自动被追加到服务器~/.ssh/authorized_keys文件中,整个过程一气呵成。

方法二:手动上传(通用可靠)

这个方法步骤稍多,但适用于所有环境,能让你更清楚每个环节在做什么。

第一步:在本地查看公钥内容。
在PowerShell中执行:

cat ~/.ssh/id_rsa.pub

复制输出的全部内容,它是一串以 ssh-rsa 开头的长文本。

第二步:登录服务器并准备目录。
使用密码登录你的服务器:

ssh root@175.27.254.137

登录后,依次执行以下命令,创建.ssh目录并设置正确的权限:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

第三步:将公钥追加到授权文件。
打开服务器上的 ~/.ssh/authorized_keys 文件(可以使用 vinano 编辑器),将第一步复制的公钥内容粘贴到新的一行,保存并退出。

方法三:一条命令搞定(Windows PowerShell专属)

如果你喜欢极致简洁,可以使用PowerShell管道特性,将本地公钥直接传输并写入服务器,无需手动复制粘贴:

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@175.27.254.137 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

这条命令会一次性完成创建目录、写入公钥和设置权限的所有操作。

验证配置是否成功

完成上述任一步骤后,就可以测试免密登录了。在本地终端尝试连接服务器:

ssh root@175.27.254.137

如果配置正确,你应该能直接登录到服务器命令行,而不再被要求输入密码。恭喜你,免密登录已配置成功!这对于自动化运维任务和批量服务器管理来说,是效率提升的关键一步。

常见问题与进阶技巧

即使配置过程简单,有时也会遇到一些小问题。以下是几个常见的排查点和优化技巧。

1. 服务器文件权限问题

SSH协议对权限检查非常严格。如果手动上传后登录失败,首要检查服务器上相关目录和文件的权限。请确保:

  • .ssh 目录权限为 700 (drwx------)
  • authorized_keys 文件权限为 600 (-rw-------)

可以通过以下命令修复:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2. SSH密钥的默认存储路径

不同系统下,SSH密钥的默认存放位置有所差异。了解这一点有助于你管理和备份密钥。

系统 默认私钥/公钥路径
Windows (OpenSSH) C:\Users\用户名\.ssh\
Linux / Mac ~/.ssh/

3. 使用配置文件管理多台服务器

如果你需要管理多个服务器,为每个IP地址和用户写长长的ssh命令非常麻烦。通过配置本地的 ~/.ssh/config 文件(Windows路径:C:\Users\用户名\.ssh\config),可以极大简化连接过程。

用文本编辑器创建或编辑该文件,添加如下格式的配置:

Host myserver
    HostName 175.27.254.137
    User root
    Port 22
    IdentityFile ~/.ssh/id_rsa

保存后,你就可以直接使用 ssh myserver 来连接对应的服务器,系统会自动使用指定的密钥和用户身份。这个技巧在连接测试、预发和生产等多套环境时尤其有用。

希望这篇指南能帮助你顺利完成Windows到Linux服务器的免密登录配置,让日常的开发和运维工作更加流畅高效。如果在实践中遇到其他问题,欢迎到云栈社区的技术论坛与更多开发者一起交流探讨。




上一篇:10年文娱PM自述:从跟风到原创,产品创新的4大来源与实战避坑指南
下一篇:罗福莉:从AGI到自进化,Agent框架如何革新大模型研究路径
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-28 04:30 , Processed in 2.585062 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表