Совместное использование ключей SSH - PullRequest
21 голосов
/ 23 декабря 2010

Я использую закрытый ключ SSH и запись без пароля для ряда учетных записей пользователей на сервере, на котором размещено несколько веб-сайтов.

Я использую один и тот же закрытый ключ для каждой учетной записи пользователя. (потому что я ленивый? или это «правильный» путь).

Теперь я хочу авторизовать другой доверенный компьютер в другой части страны. Если я скопирую содержимое моего ~ / .ssh на этот компьютер, это будет работать без какой-либо другой настройки?

Смогут ли обе машины поддерживать соединение одновременно?

Ответы [ 4 ]

30 голосов
/ 24 августа 2012

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


Правильный ответ - скопировать ваш .ssh каталог со старой машины на новую.Эта часть проста (scp -r .ssh user@newmachinehost:~ хорошо подойдет - или вы можете вводить ключи по буквам, до вас).

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

Мне пришлось выполнить следующее для каждого ключа (у меня есть 3 отдельных ключа для различных организаций)

ssh-add .ssh/[key-filename]

Если аргумент имени файла опущен, предполагается id_dsa.

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

В противном случае копирование не поможет.SSH будет игнорировать ключи в .ssh, пока они не будут явно использованы (через ssh -i [keyfilename] ...).

8 голосов
/ 23 декабря 2010

Это должно работать, и обе машины должны иметь возможность поддерживать соединение одновременно - мне пришлось копировать каталог ~/.ssh несколько раз до того, как произошел сбой жесткого диска.

5 голосов
/ 21 февраля 2016

Копирование ~/.ssh между системами в порядке, если оно ограничено только файлами типа authorized_keys, config и known_hosts.Если вы хотите, чтобы два хоста могли иметь доступ друг к другу, каждому хосту нужен собственный закрытый ключ SSH, который затем необходимо добавить в файл authorized_keys другого хоста.

Это не хорошая идея для копирования закрытых ключей между системами!

Подумайте о секретах реального мира.Каждый, кто узнает секрет, увеличивает вероятность его раскрытия.

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

Если ваш ноутбук будет украден, вам необходимо отозвать все закрытые ключи (и сохраненные пароли), которые там хранились.Это становится проблематичным, когда единственный способ войти на сервер с помощью этого ключа.Лучше не забудьте сгенерировать новый ключ на своем рабочем столе и установить его в каждой системе, с которой вы отзываете старый ключ!

Теперь подумайте, что ваш рабочий стол взломан и кто-то украл ваш закрытый ключ без вашего ведома.Возможно, вы разделили этот ключ между вашим рабочим ноутбуком и вашим персональным рабочим столом, но вашему рабочему столу на самом деле не нужен доступ к вашей рабочей системе (потому что у вас хороший баланс работы / жизни).Теперь этот злоумышленник может получить доступ к вашей рабочей системе, даже не ставя под угрозу ваш ноутбук.Команда Infosec на работе вынуждает вас отдать ваш ноутбук, чтобы они могли его проверить, но после недели анализа они ничего не находят.Не так весело.

Это может показаться надуманным и маловероятным, особенно если вы не главная цель (например, руководитель или системный администратор), но это просто хорошая практика, особенно учитывая, насколько легко это сделать.создать новые ключи для каждой системы и установить их открытые ключи на каждом соответствующем сервере.(Рассмотрите одну из множества систем распространения config / dotfile, если это кажется утомительным.)

Кроме того, это означает, что вы будете повышать безопасность каждого ключа в соответствии со стандартами по мере их улучшения.Когда вы удаляете старые системы и удаляете их ключи, вы поворачиваете их более слабые ключи.(И если какой-нибудь мусорщик найдет ваш старый ноутбук и восстановит ваши ключи, он не предоставит никакого доступа.)

1 голос
/ 23 декабря 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...