ssh server quick connect guide

拒绝每次输 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 文件,添加以下内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# ==========================================
# 服务器 1 的配置(示例)
# ==========================================
Host myserver
    HostName 123.45.67.89
    User root
    Port 22

# ==========================================
# 服务器 2 的配置(如果端口不是22,可以自定义)
# ==========================================
Host testbox
    HostName 98.76.54.32
    User dev
    Port 2222

参数说明:

请根据实际情况修改:

配置项 含义
Host myserver 自定义快捷名称,之后使用 ssh myserver
HostName 服务器 IP 地址或域名
User 登录服务器的用户名
Port SSH 端口;默认是 22
IdentityFile 私钥文件路径
IdentitiesOnly yes 优先只使用指定的身份文件进行认证

如果服务器使用默认密钥路径,且 SSH 能自动找到密钥,IdentityFile 和 IdentitiesOnly 可以按需省略。若服务器使用密码登录,也可以省略这两项。

3. 测试快捷连接

保存文件后,在终端中直接输入:

1
ssh myserver

此时你会发现,它已经不再需要你输入 IP 和端口了,直接提示你输入密码。接下来,我们把密码输入也省掉。


第二步:配置 SSH 免密密钥登录(可选但强烈推荐)

免密登录的原理是:在本地电脑生成一对密钥(公钥和私钥),把公钥存放到服务器上。以后连接时,两端会自动匹配密钥,不再需要输入密码。

1. 检查是否已有密钥

在终端或 PowerShell 中运行:

1
ls ~/.ssh

Windows PowerShell 通常也支持该路径。如果命令无法识别,可直接查看用户目录下的 .ssh 文件夹。

如果看到 id_ed25519 和 id_ed25519.pub,通常表示已有一对 Ed25519 密钥。不要随意覆盖已有密钥。

2. 本地生成密钥对(如果已有可跳过)

在本地电脑的终端中执行以下命令:

1
ssh-keygen -t ed25519 -C "your_email@example.com"

按提示选择保存位置。默认位置通常是 ~/.ssh/id_ed25519。建议为私钥设置口令(passphrase),以降低私钥文件泄露后的风险。

3. 将公钥上传至服务器

💡 方法 A:使用 ssh-copy-id 自动上传(推荐 Mac/Linux/新版 Windows)

在终端中执行(注意替换为你前面配置的 Host 别名):

1
ssh-copy-id myserver

根据提示输入一次服务器的密码。输入正确后,公钥会自动写入到服务器中。

💡 方法 B:手动复制(Windows 传统 CMD 或上述方法失败时使用)

  1. 用文本编辑器打开本地的 id_rsa.pub,复制里面的全部内容。
  2. 手动通过 SSH 登录到服务器,打开或创建 ~/.ssh/authorized_keys 文件。
  3. 将复制的内容粘贴到该文件的末尾,并保存。
  4. 确保服务器上的权限正确(非常重要):
    1
    2
    
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

🎉 大功告成

现在,彻底关闭你的终端并重新打开。输入你设置的别名:

1
ssh myserver

直接登录成功!无需输入 IP,无需输入密码,一秒连接!


💡 进阶技巧:配合 VS Code 远程开发

如果你使用 VS Code,配置好本地的 config 文件后,可以直接安装官方扩展 Remote - SSH。

  1. 安装插件后,点击左侧的“远程资源管理器”图标。
  2. 插件会自动读取你刚刚配置的 config 文件,将 myserver 显示在列表中。
  3. 点击连接,即可直接在 VS Code 中像操作本地代码一样开发远程服务器的项目!

要便捷也要安全

  • 千万不要泄露私钥: 不要将 id_ed25519 等私钥文件发给他人;分享公钥时也要确认用途和对象。
  • 优先使用密钥认证: 为私钥设置口令,并妥善保存备份。
  • 核对服务器指纹: 首次连接或服务器重装后,先通过可信渠道核实指纹。
  • 不要随意关闭主机密钥检查: 不建议为了消除提示而设置 StrictHostKeyChecking no。
  • 限制网络访问: 在云安全组或防火墙中仅开放必要端口,并尽可能限制来源地址。
  • 使用最小权限账号: 日常操作尽量不要直接使用 root 登录。