【实战】SSH 免密登录配置详解:从原理到快速实践

在进行远程开发或服务器管理时,频繁输入密码不仅效率低下,还存在被暴力破解的风险。本文将带你快速配置 SSH 免密登录,并利用 SSH Config 进一步简化操作,实现“一键直达”服务器。


一、 核心原理简述

SSH 免密登录主要基于 非对称加密 算法:

  1. 本地机器 生成一对密钥:私钥(自己严格保管)和公钥(上传给服务器)。
  2. 当你发起连接时,服务器会用存储的公钥出题,你本地用私钥解题。
  3. 匹配成功即代表身份验证通过,无需再输入登录密码。

二、 操作步骤

1. 在本地生成密钥对

在本地终端(Windows 使用 PowerShell,Linux/Mac 使用 Terminal)输入以下命令:

ssh-keygen -t rsa -b 4096
  • File to save: 直接按回车(默认保存在 ~/.ssh/id_rsa)。

  • Passphrase: 直接按回车(建议留空,实现真正的免密登录)。

执行结果: 你的 ~/.ssh 目录下会出现两个核心文件:

  • id_rsa:私钥,相当于你的银行卡密码,不能给别人。

  • id_rsa.pub:公钥,相当于你的银行卡号,用于存放在服务器。

2. 将公钥发送到服务器

我们需要把公钥告诉服务器,让它“认识”你的电脑。

方法 A:快捷命令(推荐) 如果你是 Linux/Mac 或安装了 Git Bash 的 Windows 用户:

# 请将 user 替换为用户名,server_ip 替换为实际 IP
ssh-copy-id user@server_ip

方法 B:手动上传(通用方案) 如果方法 A 不可用,只需将本地 id_rsa.pub 的内容复制,追加到服务器对应用户家目录下的 .ssh/authorized_keys 文件中即可。

3. 配置 SSH 别名(进阶加速)

为了更方便,我们可以通过 config 文件给服务器起个“短名字”。 在本地电脑编辑(或创建) ~/.ssh/config 文件:

Host my_server           # 以后登录只需输入这个短名字
    HostName 10.x.x.x    # 替换为服务器实际 IP
    User your_user       # 替换为你的登录用户名
    Port 22              # SSH 默认端口

三、 最终成果

现在,你不再需要输入 ssh user@10.x.x.x 以及冗长的密码,只需在终端输入一行:

ssh my_server

秒速连接,极致丝滑!

四、 常见坑点及解决方法

  1. 权限问题(最常见) 服务器端的安全检查非常严苛,如果权限过大,SSH 会拒绝连接。请确保:
    .ssh/ 目录权限为 700
    authorized_keys 文件权限为 600

  2. Windows 环境下 ssh-keygen 失效 请确保已开启 Windows 的“OpenSSH 客户端”功能。

posted @ 2026-01-31 13:25  雅可比晒太阳  阅读(8)  评论(0)    收藏  举报