
У меня есть учетные записи на двух машинах: H1 и H2. Я создал ключи ssh на H1 и установил их на S1. Теперь я могу подключиться по ssh к S1 из H1. Я хочу сделать то же самое из H2. Как мне установить ключи ssh, сгенерированные на H1, на H2?
решение1
Отредактировано:Если вы являетесь владельцем обеих машин, вы можете поделиться своим закрытым ключом. Ноэто решение не безопаснона случай кражи ноутбука или для машин, которые вам не принадлежат.
Вы можете скопировать свои приватные ключи из H1 в H2, если вы хотите использовать тот же самый приватный ключ для входа из H2 в S1. Когда вы находитесь в H1, выполните следующие команды:
H1$ ssh H2 mkdir ~/.ssh
H1$ scp ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/
Внимание! Это удалит и заменит любой закрытый ключ, который у вас был на H2.
Лучший путьзаключается в генерации новых закрытых ключей на H2 (ssh-keygen
) и установить их публичную часть на S1 с помощьюssh-copy-id
util. В этом более безопасном случае у вас будет два набора ключей: один для входа H1-S1, а второй для входа H2-S1. Будет два открытых ключа, авторизованных на S1. И вы сможете отозвать любой из них или оба (например, если ваш ноутбук украдут или владелец машины решит отключить вашу учетную запись и повторно использовать все ваши файлы).
решение2
Использоватьssh-copy-id
СИНОПСИС
ssh-copy-id [-i [файл_идентификации]] [пользователь@]машина
ОПИСАНИЕ
ssh-copy-id — это скрипт, который использует SSH для входа на удаленную машину и добавления указанного файла идентификации в файл ~/.ssh/authorized_keys этой машины.
решение3
Используйте два закрытых ключа
Настройте H2, используя тот же процесс (нонеттот же закрытый ключ), что и при настройке H1:
- Никогда не бывает веской причины копировать закрытый ключ с какой-то другой машины. Если вы еще не сгенерировали новый закрытый ключ на H2, сделайте это сейчас. Также сгенерируйте соответствующий открытый ключ. В терминале на H2,
тип:ssh-keygen -t rsa
- Скопируйте открытый ключ вашего H2 на сервер. В терминале на H2,
тип:ssh-copy-id [email protected]
(но используйте свое фактическое имя пользователя на S1 и имя хоста S1, а затем введите свой пароль на S1, когда он его запросит).
Это установит открытый ключ вашей рабочей станции в ~/.ssh/authorized_keys
файл для этого пользователя на сервере.
- Шаг 3 отсутствует. С этого момента вы можете войти в S1 из своего H2, а также войти в S1 из своего H1.
подробности
Я предполагаю, что на самом деле вы спрашиваете:
- У меня есть сервер ("S1")
- Я захожу на свой сервер со своего личного ноутбука («H1»).
- Я также хочу войти на свой сервер со своей рабочей станции («H2»).
Как правильно это сделать?
- Я полагаю, что я мог бы просто войти с тем же паролем из обоих мест. Это не может быть правильным способом, потому что все говорят, что аутентификация с открытым ключом намного лучше паролей.(а)
- Я полагаю, что я мог бы просто скопировать закрытый ключ со своего ноутбука на свою рабочую станцию. Это не может быть правильным способом, потому что все говорят, что закрытый ключ никогда не должен покидать клиентскую машину.
Людям вбили в голову, что у одной учетной записи на сервере есть одно имя пользователя и, конечно же, один авторизованный пароль.
Системы с открытым ключом, такие как SSH, лучше, чем система паролей: одна учетная запись на сервере имеет одно имя пользователя илюбое количество авторизованных открытых ключей, все они перечислены в ~/.ssh/authorized_keys
файле.
решение4
Для переноса ключей SSH с одного компьютера на другой. Просто скопируйте всю папку из ~/.ssh с H1 (старая машина) в папку содержимого ~/.ssh новой машины H2.
Теперь попробуйте:
сш[email protected](ваш IP-адрес S1)
Вероятнее всего, вы получите предупреждение о разрешении исправить этот запуск:
chmod 400 ~/.ssh/id_rsa
А теперь еще раз:
сш[email protected](ваш IP-адрес S1)
Теперь всё будет работать нормально.