sshd является ssh сервером deamon. Таким образом, если Вы хотите соединиться с машиной через ssh, необходимо установить ssh сервер на целевой машине, например, использование
sudo apt-get install openssh-server
Команда ssh - то, что Вы используете для фактического соединения с машиной, выполняющей ssh сервер. Вам нужен ssh, установленный на машине, от которой Вы хотите к ssh.
sudo apt-get install ssh
Но ssh будет, вероятно, уже установлен при использовании какой-либо достойной версии Ubuntu.
Теперь о перезапуске. Что Вы хотите перезапустить? Если Вы хотите перезапустить ssh сервер на другой машине (например, если Вы изменили конфигурацию), использование
sudo /etc/init.d/ssh restart
Да это называют ssh, хотя процесс называют sshd, который мог бы сбивать с толку.
В конечном итоге сертификат будет отправлен с использованием механизма из X509KeyManager
, используемого в SSLContext
, используемом SSLSocket
/ SSLEngine
, используемый клиентом.
По умолчанию SSLContext
инициализирует свой диспетчер ключей с помощью системных свойств javax.net.ssl.keyStore *
. (См. этот ответ SO , чтобы узнать о разнице между «хранилищем ключей» и «хранилищем доверия»: оба используют формат API / хранилища «хранилище ключей».)
Самый простой - настроить JVM под управлением Tomcat, в котором работает ваш клиент / веб-приложение, с этими свойствами javax.net.ssl.keyStore *
. По умолчанию SSLContext
подберет его, и он ' s используется по умолчанию для соединений HTTPS (даже сторонние библиотеки HTTPS будут использовать его).
Если вам нужно что-то более конкретное для определенных запросов, вам может потребоваться изменить код веб-приложения, чтобы использовать определенное хранилище ключей (или, по крайней мере, выберите конкретный сертификат) в заданном SSLContext
для этого запроса.
Как вы настраиваете JVM, на которой запущен Tomcat, будет зависеть от запускаемого сценария. Если под Windows этот вопрос должен помочь, в противном случае я подозреваю, что где-то в catalina.sh
есть строка, где вы можете установить свойства системы.
Если вы настроите глобальный javax.net.ssl.keyStore *
для этого, это повлияет на всю виртуальную машину, включая соединители. Чтобы ваши соединители Tomcat не использовали это хранилище ключей, убедитесь, что
указаны собственные атрибуты keyStore *
(чтобы не использовать значения из системных свойств).
Если в вашем хранилище ключей есть несколько сертификатов (с закрытым ключом), выбор должно выполняться автоматически в соответствии со списком CA, отправленным сервером в сообщении CertificateRequest
. По умолчанию диспетчер ключей выбирает первый сертификат, который он найдет в настроенном хранилище ключей, который выдается ЦС из этого списка (или промежуточным ЦС). Если вам нужно что-то более конкретное (в частности, если в вашем хранилище ключей есть несколько допустимых кандидатов), вам нужно будет реализовать собственный X509KeyManager
, поместить логику в chooseClientAlias
, инициализировать SSLContext
с ним, и сделать так, чтобы любой API, выполняющий эти запросы, использовал его.