拒绝每次输 IP 和密码!手把手教你配置 SSH 快捷免密连接服务器
在开发或运维工作中,我们经常需要远程连接 Linux 服务器。每次都输入 ssh username@192.168.x.x -p port,然后再手动输入一长串密码,不仅效率低下,还容易出错。
本文将教你如何通过配置本地 SSH 的 config 文件,实现只需输入一个别名(如 ssh server1)即可秒连服务器,并同步配置免密登录。
🚀 核心原理与最终效果
- 之前的方式:
ssh root@123.45.67.89 -p 22-> 等待提示 -> 输入复杂密码 -> 成功。 - 之后的方式:
ssh my_server-> 直接秒进系统!
第一步:配置 SSH 别名(快捷连接)
SSH 客户端允许我们在本地建立一个配置文件,将复杂的 IP、端口和用户名映射为一个简单的“别名”。
1. 找到或创建本地配置文件
打开你电脑的终端(Windows 使用 PowerShell 或 Cmd,Mac/Linux 使用 Terminal),找到 .ssh 文件夹。
- Windows 路径:
C:\Users\你的用户名\.ssh\ - Mac/Linux 路径:
~/.ssh/
如果该目录下没有 config 文件(注意:没有后缀名),请直接创建一个名为 config 的文本文件。
2. 编写配置内容
使用任何文本编辑器打开 config 文件,添加以下内容:
|
|
参数说明:
请根据实际情况修改:
| 配置项 | 含义 |
|---|---|
Host myserver |
自定义快捷名称,之后使用 ssh myserver |
HostName |
服务器 IP 地址或域名 |
User |
登录服务器的用户名 |
Port |
SSH 端口;默认是 22 |
IdentityFile |
私钥文件路径 |
IdentitiesOnly yes |
优先只使用指定的身份文件进行认证 |
如果服务器使用默认密钥路径,且 SSH 能自动找到密钥,IdentityFile 和
IdentitiesOnly 可以按需省略。若服务器使用密码登录,也可以省略这两项。
3. 测试快捷连接
保存文件后,在终端中直接输入:
|
|
此时你会发现,它已经不再需要你输入 IP 和端口了,直接提示你输入密码。接下来,我们把密码输入也省掉。
第二步:配置 SSH 免密密钥登录(可选但强烈推荐)
免密登录的原理是:在本地电脑生成一对密钥(公钥和私钥),把公钥存放到服务器上。以后连接时,两端会自动匹配密钥,不再需要输入密码。
1. 检查是否已有密钥
在终端或 PowerShell 中运行:
|
|
Windows PowerShell
通常也支持该路径。如果命令无法识别,可直接查看用户目录下的 .ssh
文件夹。
如果看到 id_ed25519 和 id_ed25519.pub,通常表示已有一对 Ed25519
密钥。不要随意覆盖已有密钥。
2. 本地生成密钥对(如果已有可跳过)
在本地电脑的终端中执行以下命令:
|
|
按提示选择保存位置。默认位置通常是
~/.ssh/id_ed25519。建议为私钥设置口令(passphrase),以降低私钥文件泄露后的风险。
3. 将公钥上传至服务器
💡 方法 A:使用 ssh-copy-id 自动上传(推荐 Mac/Linux/新版 Windows)
在终端中执行(注意替换为你前面配置的 Host 别名):
|
|
根据提示输入一次服务器的密码。输入正确后,公钥会自动写入到服务器中。
💡 方法 B:手动复制(Windows 传统 CMD 或上述方法失败时使用)
- 用文本编辑器打开本地的
id_rsa.pub,复制里面的全部内容。 - 手动通过 SSH 登录到服务器,打开或创建
~/.ssh/authorized_keys文件。 - 将复制的内容粘贴到该文件的末尾,并保存。
- 确保服务器上的权限正确(非常重要):
1 2chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
🎉 大功告成
现在,彻底关闭你的终端并重新打开。输入你设置的别名:
|
|
直接登录成功!无需输入 IP,无需输入密码,一秒连接!
💡 进阶技巧:配合 VS Code 远程开发
如果你使用 VS Code,配置好本地的 config 文件后,可以直接安装官方扩展
Remote - SSH。
- 安装插件后,点击左侧的“远程资源管理器”图标。
- 插件会自动读取你刚刚配置的
config文件,将myserver显示在列表中。 - 点击连接,即可直接在 VS Code 中像操作本地代码一样开发远程服务器的项目!
要便捷也要安全
- 千万不要泄露私钥: 不要将
id_ed25519等私钥文件发给他人;分享公钥时也要确认用途和对象。 - 优先使用密钥认证: 为私钥设置口令,并妥善保存备份。
- 核对服务器指纹: 首次连接或服务器重装后,先通过可信渠道核实指纹。
- 不要随意关闭主机密钥检查: 不建议为了消除提示而设置
StrictHostKeyChecking no。 - 限制网络访问: 在云安全组或防火墙中仅开放必要端口,并尽可能限制来源地址。
- 使用最小权限账号: 日常操作尽量不要直接使用 root 登录。