~/.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 密钥。