1

(1) Я использую следующие команды на компьютере A для генерации ключа аутентификации для ssh от компьютера A к компьютеру B

ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub B:.ssh/authorized_keys2

(а) если вы продолжите генерировать ключ аутентификации для ssh с компьютера А на компьютер С, как вы будете это делать? это хороший способ просто использовать тот же ~/.ssh/id_rsa.pub для A до B, т.е.

scp ~/.ssh/id_rsa.pub C:.ssh/authorized_keys2

(b) если в дальнейшем генерировать ключ аутентификации для ssh от компьютера B к компьютеру D, правильно ли повторять команды от A до B на B?

ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub D:.ssh/authorized_keys2

(2) Кажется, есть другой метод для A к B:

ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub B

В чем разница между (2) и (1)? Что вы будете делать, если будете использовать команды (2) в случаях (a) и (b) of (1), особенно (b)?

Спасибо и всего наилучшего!

2 ответа2

1

Если у вас есть доступ к команде 'ssh-copy-id', это хороший способ изначально настроить аутентификацию SSH. от исходного хоста. Сценарий ssh-copy-id просто берет ваш открытый ключ, копирует его на удаленный хост, в файл ~/.ssh/authorized_keys. Он также гарантирует, что каталог ~/.ssh существует и имеет режим, установленный на 700 (go-rwx).

Если вы собираетесь установить простую цепь аутентификации SSH между несколькими машинами, как вы описали выше, вы можете использовать один и тот же ключ для всех машин. Простой рецепт для этого будет следующим:

Генерация 1024-битного ключа DSA (также может быть RSA, но затем 2048-битный или более)

A ~# ssh-keygen -t dsa

Раздайте открытый ключ другим 3 хостам. Здесь вам будет представлен обычный логин для пользователя @ B, user @ C и user @ D

A ~# ssh-copy-id -i .ssh/id_dsa.pub user@B
A ~# ssh-copy-id -i .ssh/id_dsa.pub user@C
A ~# ssh-copy-id -i .ssh/id_dsa.pub user@D

После копирования идентификатора вы можете распространить закрытый ключ (!) другим хозяевам. Это фактически позволит вам войти на хост A напрямую из B или из D в C и т.д., Так как все они используют один и тот же ключ и имеют одинаковые авторизованные ключи.

A ~# scp -p .ssh/id_dsa user@B:~/.ssh/
A ~# scp -p .ssh/id_dsa user@C:~/.ssh/
A ~# scp -p .ssh/id_dsa user@D:~/.ssh/

Последняя задача - переименовать открытый ключ на хосте A, чтобы на хосте A также были авторизованные ключи и он мог разрешить вход с хостов B, C и D.

A ~# mv .ssh/id_dsa.pub .ssh/authorized_keys

Теперь вы сможете перемещаться или копировать данные между всеми 4 хостами, используя один и тот же ключ, минуя вызов Login-user-password. В зависимости от погоды вы сгенерировали ключ без пароля, то есть ...

1

Я использую метод 1 и копирую свой открытый ключ на все серверы, к которым я хочу получить доступ (используя этот ключ). Открытый ключ не позволяет идентифицировать другие места, в которые он может распространяться, и если вы начнете использовать несколько ключей для нескольких хостов, к которым вы пытаетесь получить доступ, вы просто создадите кошмар управления для себя.

Просто убедитесь, что ваш закрытый ключ закрыт и защищен парольной фразой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .