38

У меня есть аккаунты на двух машинах: H1 и H2. Я создал ключи ssh на H1 и установил его на S1. Теперь я могу SSH к S1 от H1. Я хочу сделать то же самое с H2. Как мне установить ключи ssh, сгенерированные на H1 на H2?

4 ответа4

25

Используйте ssh-copy-id

СИНТАКСИС

ssh-copy-id [-i [индивидуальный_файл]] [пользователь @] машина

ОПИСАНИЕ

ssh-copy-id - это сценарий, который использует ssh для входа на удаленный компьютер и добавления указанного файла идентификации в файл ~/.ssh/authorized_keys этого компьютера.

23

Отредактировано: если у вас есть обе машины, вы можете поделиться своим закрытым ключом.Но это решение небезопасно для случая кражи ноутбука или для машин, которыми вы не владеете.

Вы можете скопировать свои личные ключи с 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 . В этом более безопасном случае у вас будет два набора ключей; один для входа в систему H1-S1, а второй для входа в систему H2-S1. На S1 будет авторизовано два открытых ключа. И вы сможете отозвать любой из них или оба (например, когда у вас украли ноутбук или владелец машины решит отключить вашу учетную запись и повторно использовать все ваши файлы).

9

Используйте два закрытых ключа

Настройте H2, используя тот же процесс (но не тот же закрытый ключ), который вы использовали при настройке H1:

  • Никогда не существует веских причин для копирования закрытого ключа с другого компьютера. Если вы еще не сгенерировали новый закрытый ключ на H2, сделайте это сейчас. Также сгенерируйте соответствующий открытый ключ. В терминале на H2,

тип: ssh-keygen -t rsa

  • Скопируйте открытый ключ вашей H2 на сервер. В терминале на H2,

введите: ssh-copy-id username@S1.net

(но используйте свое действительное имя пользователя на S1 и имя хоста S1, а затем введите свой пароль на S1, когда он запросит его).

Это установит открытый ключ вашей рабочей станции в файл ~/.ssh/authorized_keys для этого пользователя на сервере.

  • Нет шага 3. С этого момента вы можете войти в S1 со своего H2, а также войти в S1 со своего H1.

подробности

Я предполагаю, что вы действительно спрашиваете

  • У меня есть сервер ("S1")
  • Я вхожу в свой сервер с моего личного ноутбука ("H1")
  • Я также хочу войти в свой сервер с моей рабочей станции ("H2").

Как правильно это сделать?

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

Людям вбивают в голову, что одна учетная запись на сервере имеет одно имя пользователя и, конечно, один авторизованный пароль.

Системы с открытым ключом, такие как ssh, лучше, чем система паролей: одна учетная запись на сервере имеет одно имя пользователя и любое количество авторизованных открытых ключей, и все они перечислены в файле ~/.ssh/authorized_keys .

(подробнее).

0

Подойдет ли ssh-copy-id для вас: http://linux.die.net/man/1/ssh-copy-id?

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