Я ищу способ сделать опцию --insecure
по умолчанию для любой команды hg
\TortoiseHg.
Пожалуйста, не пишите, это плохая практика - я знаю о возможных рисках и считаю, что они полностью приемлемы.
Я ищу способ сделать опцию --insecure
по умолчанию для любой команды hg
\TortoiseHg.
Пожалуйста, не пишите, это плохая практика - я знаю о возможных рисках и считаю, что они полностью приемлемы.
Установка cacerts
в разделе [web]
для пустой строки выглядит одинаково. Из источника:
if cmdoptions.get('insecure', False):
ui.setconfig('web', 'cacerts', '!', '--insecure')
что вики подтверждает:
Иногда может оказаться целесообразным отключить проверки безопасности, например, при работе с хостами с самозаверяющими сертификатами. Это можно сделать, отключив конфигурацию сертификата CA в командной строке:
hg push --config web.cacerts = https://самоподписанный хост/репо
Так что cacerts=!
в разделе [web]
вашей глобальной hgrc (/etc/mercurial/hgrc
на linux-likes) вы попадете туда.
Если ваша цель состоит в том, чтобы исключить предупреждения отпечатков пальцев сертификатов во время push/pull, есть лучший способ сделать это. Используйте [hostfingerprints] в .hg/hgrc (или ~/.hgrc - см. Комментарии).
[hostfingerprints]
server.example.org = 38:76:52:7c:87:26:9a:8f:4a:f8:d3:de:08:45:3b:ea:d6:4b:ee:cc
Это исключит предупреждения без устранения проверок безопасности.
Примечание: я вижу из ваших комментариев к другому ответу, что вы уже нашли это решение. Я отправляю это в любом случае на случай, если у кого-то есть такая же проблема.
Вы можете использовать псевдонимы для достижения этого. Добавьте это в свой .hgrc
:
[alias]
push = push --insecure
Проблема заключается в том, что вам нужно сделать это для каждой команды, которую вы хотите использовать, и я предлагаю вам использовать разные имена для ваших псевдонимов, чем по умолчанию.
Насколько я знаю, нет способа принудительно выполнить --insecure
для всех команд "автоматически".
Как указано в ответе Брюса Олдермана, хорошей альтернативой использованию опции --insecure
является простое добавление отпечатков хоста в файл ~/.hgrc
. (Предположительно запрещено добавлять их в .hg/hgrc
из-за угроз безопасности.) [hostfingerprints]
раздел [hostfingerprints]
устарел.
Добавьте следующее в ~/.hgrc
:
[hostsecurity]
<host>:fingerprints=sha256:<hash>
где <host>
должен быть заменен именем хоста (без https://
), а <hash>
должен быть заменен отпечатком SHA-256 (32 байта, записанных как :
-separated шестнадцатеричный). Вывод следующей команды SHA-256 по отпечатку пальца
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
На странице Mercurial есть дополнительная документация по безопасным соединениям.