Назад | Перейти на главную страницу

Как экспортировать мой открытый ключ SSH?

Мне нужно настроить сеансы ssh между двумя серверами, и я не хочу, чтобы сценарий каждый раз вводил имя пользователя и пароль.

Однако я не могу понять, откуда SSH-сервер использует свою конфигурацию.

bash-2.05# ssh -V
Sun_SSH_1.1, SSH protocols 1.5/2.0, OpenSSL 0x0090700f

У меня есть файлы сертификатов в / etc / ssh / и ~ / .ssh /. Я могу найти только один файл конфигурации для SSH, и он находится в / etc / ssh / ssh_config, но он не содержит данных (все закомментировано).

Кто-нибудь знает, как я могу узнать, где хранится сертификат, или как я могу его экспортировать, чтобы передать его на другой сервер? Я надеялся, что файлы конфигурации дадут мне ответ, но они почти не помогают.

Предполагая, что вы имеете в виду аутентификацию с открытым ключом на уровне пользователя под словом «сертификат», и вы создали их, используя ssh-keygen с расположением по умолчанию они должны быть там, где ваш ssh-клиент найдет их. Ключ состоит из закрытой части, обычно хранящейся в ~/.ssh/id_rsa и публичное участие в ~/.ssh/id_rsa.pub. Последнюю придется перенести на удаленный сервер, обычно на ~/.ssh/authorized_keys.

Самый простой способ перенести ключ на другой сервер - использовать ssh-copy-id с целевой машиной. Если вы использовали расположение по умолчанию при создании, этот ключ будет использован автоматически.

Обратите внимание, что /etc/ssh/ssh_config для клиента. На сервере вам нужно будет посмотреть /etc/ssh/sshd_config. В вашей настройке оба сервера будут служить как ssh-client, так и ssh-server, поэтому вам придется просматривать оба файла с обоих концов.

Вам нужно найти открытый ключ ssh для пользователя, который будет входить в систему для сценария.

Например, если у меня есть serverA и serverB, я бы сделал следующее.

sudo adduser scriptrunner
...
sudo su - scriptrunner
ssh-keygen
...
cat .ssh/id_rsa.pub
ssh-rsa AAAAB3Nza...... scriptrunner@serverA

затем сделайте что-то подобное на ServerB

Затем на serverA введите открытый ключ пользователя scriptrunner serverB в /home/scriptrunner/.ssh/authorized_keys

и сделайте противоположное на serverB (используя пользователя scriptrunner serverA в authorized_keys в /home/scriptrunner/.ssh/authorized_keys на сервереB)

Тогда вы сможете сделать ssh scriptrunner@serverA с serverB с помощью ключа, и наоборот.

Вы также можете использовать ssh-copy-id сделать бит authorized_keys.

Чтобы установить ssh-соединение с аутентификацией с открытым ключом, пользователь, который инициирует соединение, должен иметь пару открытого / закрытого ключей. Во многих дистрибутивах Linux эти ключи не генерируются по умолчанию и должны быть созданы самим пользователем (или администратором от его имени).

Если вы вошли в систему как соответствующий пользователь, перейдите в свой домашний каталог и запустите

ssh-keygen

Примите все значения по умолчанию, и новая пара ключей будет создана в ~ / .ssh / id_rsa и ~ / .ssh / id_rsa.pub. Теперь скопируйте открытый ключ и вставьте его в файл ~ / .ssh / authorized_keys целевой учетной записи пользователя на целевой машине. Затем включите аутентификацию с открытым ключом на целевой машине (в / etc / ssh / sshd_config), и все будет в порядке.

НОТА: когда вы делаете это впервые, в этом процессе есть много возможных подводных камней. Все разрешения должны быть правильными, а файлы должны находиться в нужных местах. Вероятно, будет лучше, если вы последуете HowTo Like вот этот.