【实战】SSH 免密登录配置详解:从原理到快速实践
在进行远程开发或服务器管理时,频繁输入密码不仅效率低下,还存在被暴力破解的风险。本文将带你快速配置 SSH 免密登录,并利用 SSH Config 进一步简化操作,实现“一键直达”服务器。
一、 核心原理简述
SSH 免密登录主要基于 非对称加密 算法:
- 本地机器 生成一对密钥:私钥(自己严格保管)和公钥(上传给服务器)。
- 当你发起连接时,服务器会用存储的公钥出题,你本地用私钥解题。
- 匹配成功即代表身份验证通过,无需再输入登录密码。
二、 操作步骤
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
秒速连接,极致丝滑!
四、 常见坑点及解决方法
-
权限问题(最常见) 服务器端的安全检查非常严苛,如果权限过大,SSH 会拒绝连接。请确保:
.ssh/ 目录权限为 700
authorized_keys 文件权限为 600 -
Windows 环境下 ssh-keygen 失效 请确保已开启 Windows 的“OpenSSH 客户端”功能。

浙公网安备 33010602011771号