通过配置 ~/.ssh/config 文件可实现 ssh train-gpu 直连内网服务器,无需记忆 IP、端口、用户名及密钥路径;该文件为 OpenSSH 原生支持,需设权限 700 和 600,支持 Host 别名、ProxyJump 跳板、连接复用等高级功能。
直接用 ssh myserver 登录,不用记 IP、端口、用户名和密钥路径——靠的就是 ~/.ssh/config 这个文件。它不是插件也不是额外工具,而是 OpenSSH 原生支持的客户端配置机制,生效快、兼容好、维护简单。
这个文件默认不存在,需要手动创建。确保 ~/.ssh 目录权限正确,再写入结构化配置:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
touch ~/.ssh/config && chmod 600 ~/.ssh/config
nano ~/.ssh/config(或 VS Code、vim 等)Host 别名 开头,缩进写参数,不加引号、不加等号比如你要连一台内网训练机,IP 是 10.20.30.40,用户名 aiuser,端口 2222,私钥在 ~/.ssh/id_ed25519-train:
Host train-gpuHostName 10.20.30.40User aiuserPort 2222IdentityFile ~/.ssh/id_ed25519-trainIdentitiesOnly yes(避免 SSH 尝试其他密钥干扰认证)保存后,运行 ssh train-gpu 就能直连,所有参数自动套用。
当机器数量变多,或存在跳板机、内网穿透等场景时,config 能继续简化流程:
Host 192.168.1.* 下设 User dev 和 IdentityFile ~/.ssh/id_rsa_dev
b bastion 主机,再为内网机加 ProxyJump bastion
ControlMaster auto、ControlPath ~/.ssh/sockets/%r@%h:%p 和 ControlPersist 600,首次连接后后续秒开OpenSSH 对安全很敏感,权限不对会导致 config 被静默忽略:
~/.ssh 目录必须是 700(仅属主可读写执行)~/.ssh/config 必须是 600(仅属主可读写)id_ed25519)也得是 600
ssh -F ~/.ssh/config -v train-gpu,看调试输出里有没有加载对应 Host 段