【发布时间】:2011-07-19 00:30:40
【问题描述】:
我正在寻找一种方法,让 --insecure 选项成为任何 hg \ TortoiseHg 命令的默认选项。
请不要写这是一种不好的做法 - 我知道可能存在的风险并认为它们是完全可以接受的。
【问题讨论】:
标签: ssl mercurial tortoisehg
我正在寻找一种方法,让 --insecure 选项成为任何 hg \ TortoiseHg 命令的默认选项。
请不要写这是一种不好的做法 - 我知道可能存在的风险并认为它们是完全可以接受的。
【问题讨论】:
标签: ssl mercurial tortoisehg
如果您的目标是在推/拉期间消除证书指纹警告,那么有更好的方法来做到这一点。使用 .hg/hgrc(或 ~/.hgrc -- 参见 cmets)中的 [hostfingerprints]。
[hostfingerprints]
server.example.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
这将消除警告而不消除安全检查。
注意:我从你的 cmets 看到另一个答案,你已经找到了这个解决方案。无论如何我都会发布这个,以防其他人有同样的问题。
【讨论】:
openssl s_client -connect <host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin
将[web] 部分中的cacerts 设置为空字符串看起来是一样的。来自the source:
if cmdoptions.get('insecure', False):
ui.setconfig('web', 'cacerts', '!', '--insecure')
有时它可能是权宜之计 禁用安全检查,例如 与主机打交道时 自签名证书。这可以是 通过禁用 CA 证书完成 命令行配置:
hg push --config web.cacerts= https://self-signed-host/repo
因此,将cacerts=! 放在全局 hgrc 的 [web] 部分(类似 linux 的 /etc/mercurial/hgrc)将帮助您实现目标。
【讨论】:
hg pull 和hg push 期间多次打印"warning: something.com certificate with fingerprint 81:....:fe not verified (check hostfingerprints or web.c acerts config setting)"。
[hostfingerprints]部分的方法。
[web] caserts= 没有在存储库级别工作。可能是我做错了什么。
您可以使用aliases 来实现这一点。将此添加到您的 .hgrc :
[alias]
push = push --insecure
问题是您必须为要使用的每个命令执行此操作,我建议您为别名使用与默认名称不同的名称。
据我所知,没有办法“自动”对所有命令强制执行 --insecure。
【讨论】:
alias,您可能应该使用更像ipush = push --insecure 这样它不会与标准命令混淆(即让用户理解发生了什么,默认情况下不要“欺骗”命令做“错误的事情”)。
正如Bruce Alderman's answer 中所指出的,使用--insecure 选项的一个很好的替代方法是简单地将主机指纹添加到~/.hgrc 文件中。 (由于安全风险,可能禁止将它们添加到.hg/hgrc。)但是[hostfingerprints] 部分已被弃用。
将以下内容添加到~/.hgrc:
[hostsecurity]
<host>:fingerprints=sha256:<hash>
其中<host> 应替换为主机名(不带https:// 前缀),<hash> 应替换为 SHA-256 指纹(32 字节,写为: 分隔的十六进制)。以下SHA-256 fingerprint command的输出
openssl s_client -connect <host>:<port> < /dev/null 2>/dev/null | openssl x509 -fingerprint -sha256 -noout -in /dev/stdin
替换<host> 和<port> 后的形式为
SHA256 Fingerprint=<hash>
例如,对于从本地计算机运行的自签名证书,可能在~/.hgrc 中有一个条目,看起来像
[hostsecurity]
localhost:fingerprints=sha256:DD:30:5A:9B:2C:E1:59:7E:46:C4:42:D3:41:34:03:17:2A:CF:50:E8:DF:78:E6:2E:C9:42:D9:9A:C9:58:AC:52
【讨论】: