Ускорить аутентификацию с открытым ключом (Linux)?
Мы используем реализацию Mercurial и отправляем данные на сервер репозитория через аутентификацию с открытым ключом, которая принимает последнюю версию и передает ее на наши веб-серверы через хуки, также используя аутентификацию с открытым ключом (таким образом, два соединения используют аутентификацию с открытым ключом). Это работает, но для прохождения даже крошечных коммитов требуется 5-10 секунд.
Я полагаю, что это происходит из-за аутентификации с открытым ключом, поскольку я знаю, что при подключении через терминал с использованием аутентификации с помощью открытого ключа требуется несколько секунд, чтобы войти в систему и показать баннер. Есть ли способ заставить это (логины) идти быстрее?
Кстати, есть ли способ предотвратить переход ssh-баннера на стандартный вывод, кроме его выключения? Он появляется в статусе возврата и довольно раздражает.
4 ответа
Я разобрался с Control Masters и использовал его для второго соединения, чтобы сделать соединения после первого соединения почти мгновенными. Я пойду с идеей, что 2 секунды - это только часть процесса соединения, когда соединение установлено. Выбор определенных клавиш и использование различных параметров командной строки в среднем не улучшали время.
echo "GSSAPIAuthentication no" > /home/`whoami`/.ssh/config
До: 0м15.512с
После: 0m0.611s
Медленный обратный днс также может быть причиной этого. Можете ли вы попробовать добавить UseDNS no
на ваш сервер Mercurial sshd_config
файл и посмотреть, поможет ли это?
Если у вас много ключей ssh на стороне клиента, это может привести к замедлению всего процесса аутентификации, так как необходимо отправить каждый открытый ключ, соответствующий одному из ключей author_keys сервера.
Плюс, если ваш сервер уже немного медленный, он легко ухудшится.