Подтвердить что ты не робот

Обмен ключами SSH

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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


Правильный ответ - скопировать каталог .ssh с старого компьютера на новый. Эта часть проста (scp -r .ssh [email protected]:~ будет делать все), или вы можете вводить ключи по-символу, вплоть до вас).

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

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

ssh-add .ssh/[key-filename]

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

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

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

Ответ 3

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

Не рекомендуется копировать личные ключи через системы!

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

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

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

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

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

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

Ответ 4

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

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