Skip to content
VDS · 机器访问

~/.ssh/config 文件:用短名称代替长命令

如何一次性描述一台机器并用两个词的命令连接、设置密钥、用户、端口,并保持连接不断开。

更新于 2026年8月23日

您无需输入 ssh -i ~/.ssh/id_ed25519 -p 22 root@203.0.113.10,只需输入 ssh vds 即可。只需在您的电脑上配置一次。

文件位置

在 macOS 和 Linux 上,路径为 ~/.ssh/config。在 Windows 上,路径为 C:\Users\<you>\.ssh\config(在 Windows Terminal 中同样是 ~/.ssh/config 路径)。该文件可能不存在——请创建它:

mkdir -p ~/.ssh
nano ~/.ssh/config
chmod 600 ~/.ssh/config

权限很重要:如果该文件对所有用户可读,客户端可能会拒绝读取它。

最简配置

Host vds
    HostName 203.0.113.10
    User root
    IdentityFile ~/.ssh/id_ed25519

现在这样就可以用了:

ssh vds

其他工具也会识别这个短名称:

scp dump.sql vds:/root/
sftp vds
rsync -avz ./site/ vds:/var/www/site/

如需复制文件,请参阅 scp 和 rsync 以及 SFTP。

实用参数

Host vds
    HostName 203.0.113.10
    User artem
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
    ServerAliveInterval 30
    ServerAliveCountMax 3
参数用途
IdentitiesOnly yes客户端只提供指定的密钥。当您有多个密钥而服务器会断开尝试时,这能帮到您
ServerAliveInterval每 30 秒发送一个数据包,避免连接因不活跃而断开
Port如果您将 SSH 迁移到了非标准端口
User该主机的默认用户名

多台机器

Host vds-web
    HostName 203.0.113.10
    User root
    IdentityFile ~/.ssh/id_ed25519

Host vds-db
    HostName 203.0.113.20
    User artem
    IdentityFile ~/.ssh/id_ed25519

Host *
    ServerAliveInterval 30

Host * 块为所有条目设置共享配置。顺序很重要:每个参数以第一个匹配为准,因此请将共享块放在最底部。

常见错误

  • 使用 Tab 缩进和行尾空格——部分客户端会因此报错。请使用四个空格。
  • 在 Windows 上使用反斜杠的密钥路径——请写成 ~/.ssh/id_ed25519。
  • 缺少 HostName——客户端会尝试连接名为 vds 的主机,但找不到它。
  • 文件权限为 644——请将其设置为 600。

要查看某个主机实际生效的配置:

ssh -G vds
ssh -v vds

第一条命令会打印最终生效的参数,第二条会显示连接过程——它会告诉您提供了哪个密钥。

config 文件只描述您这一端的配置。机器接受什么由其 /etc/ssh/sshd_config 决定,请参阅 SSH 密钥。