如何为不同主机配置不同SSH端口/密钥(TortoisePLink环境)
全局配置TortoiseHg(Mercurial)特定SSH主机的端口与私钥
Mercurial的全局配置支持针对单个主机自定义SSH命令,或者借助TortoisePLink对SSH配置文件的支持,实现特定主机的端口、私钥独立配置,不影响其他主机。以下是两种可行方案:
方案一:直接在全局hgrc中指定单主机SSH命令
- 打开全局配置文件:Windows系统为
%USERPROFILE%\Mercurial.ini,Linux/macOS为~/.hgrc。 - 在
[ui]段落下,添加针对目标主机的SSH命令配置,格式如下:[ui] ssh.myhost.com = "C:\Program Files\TortoiseHg\TortoisePLink.exe" -ssh -P 2222 -i "C:\Users\你的用户名\.ssh\myhost_key.ppk"-P参数后跟目标主机的SSH端口-i参数指定该主机对应的PPK格式私钥的绝对路径
- 保存配置后,当操作
myhost.com的仓库时,Mercurial会自动使用这条带参数的SSH命令,其他主机仍沿用默认设置。
方案二:使用SSH配置文件(适合多主机场景)
TortoisePLink支持读取OpenSSH格式的配置文件,通过这种方式可以更整洁地管理多主机的SSH参数:
- 在用户目录下创建
.ssh文件夹(Windows路径为%USERPROFILE%\.ssh,Linux/macOS为~/.ssh),并在其中新建config文件。 - 在
config文件中添加目标主机的配置:Host myhost.com Port 2222 IdentityFile C:\Users\你的用户名\.ssh\myhost_key.ppk User 你的登录用户名 (可选,若主机默认登录名不符则添加) - 回到全局hgrc的
[ui]段落,设置默认SSH命令为不带额外参数的TortoisePLink:[ui] ssh = "C:\Program Files\TortoiseHg\TortoisePLink.exe" -ssh - 保存后,TortoisePLink会自动读取
config文件中对应主机的端口、私钥配置,其他主机不受影响。
注意事项
- 私钥必须是PPK格式,若你只有OpenSSH的PEM格式私钥,需用PuTTYgen工具转换为PPK。
- 路径中包含空格时,必须用双引号包裹,避免解析错误。
- 可通过命令行执行
hg clone ssh://myhost.com/仓库路径测试配置是否生效。
内容的提问来源于stack exchange,提问作者himself
相关产品推荐
相关产品推荐

