Как заменить ssh пару частную с открытым ключом?

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

спасибо

1
задан 1 June 2018 в 22:57

1 ответ

Если Вы знаете, что у кого-то есть пароль, он, вероятно, использовал Ваш ssh ключ. Если это так, нет, вероятно, никакого способа для Вас знать, скопировал ли тот человек Ваш ssh ключ или нет. Если у того человека есть копия Вашего ключа, и Вы изменяете пароль на своем ключе, копия очевидно все еще использует старый пароль и поэтому применима тем человеком. Так, чтобы быть на безопасной стороне, я рекомендовал бы заменить Ваш ssh ключ.

Можно генерировать новый ключ путем выполнения

ssh-keygen -f ~/.ssh/new-key

Это создаст новый ключ ssh ~/.ssh/new-key.

Не забывайте к не, только создают новый ключ, но и удалить Ваш старый ключ из всех машин, которые имеют его.

Обновление: Чтобы сделать это, сначала составьте список всех машин, можно получить доступ с этим к ssh ключу. Затем для каждой из этих машин сделайте следующее:

user@local:~$ ssh someuser@somemachine
someuser@somemachine:~$ nano .ssh/authorized_keys

Отредактируйте тот файл и сделайте следующее:

  1. удалите строку, содержащую Ваш старый ssh ключ. Если существует только одна строка, которая легка, если не ищут строку, которые заканчиваются теми же загадочными буквами как Ваш старый открытый ключ. Вы видите свой старый открытый ключ путем выполнения cat ~/.ssh/id_rsa.pub на Вашей локальной машине (принимающий Ваш старый ключ id_rsa, если не необходимо скорректировать команду). Удалить строку в nano, просто нажмите Ctrl+K.
  2. добавьте свой новый открытый ключ к тому файлу. Вы находите новый открытый ключ на своем локальном использовании машины cat ~/.ssh/new-key.pub. Скопируйте целую строку дословно в файл как одна строка.
  3. Сохраните файл путем нажатия Ctrl+O, Enter и Ctrl+X для выхода nano.

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

user@local:~$ ssh -i ~/.ssh/new-key someuser@somemachine

Если это работает, и Вы подключены к удаленной машине, Вы успешно заменили свой ssh, включают ту машину. Теперь продолжите следующую машину. Повторитесь, пока не сделано.

Вы можете автоматизировать этот целый процесс немного:

ssh-copy-id -i ~/.ssh/new-key.pub someuser@somemachine
ssh -i ~/.ssh/new-key someuser@somemachine "sed -i.bak 's/$(cut -f2 ~/.ssh/id_rsa.pub | sed 's~/~\\/~g')/d' ~/.ssh/authorized_keys"

Но я не беру гарантии, что это будет работать и не блокировать Вас из некоторых машин. Используйте на Ваш собственный риск!

То, что это делает, использовать ssh-copy-id скопировать по Вашему новому ключу и использованию sed удалить Ваш старый ключ из authorized_keys файл. $(cut -f2 ~/.ssh/id_rsa.pub | sed 's~/~\\/~g') добавляет Ваш старый открытый ключ к команде, таким образом, это может искать его и заботится для выхода из наклонных черт. /some-string/d удаляет всю соответствующую строку строк (в нашем случае Ваш старый ключ) из файла.

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

После замены старого ключа, можно переименовать ключ к ~/.ssh/id_rsa так ssh находит его автоматически. Вы могли бы хотеть сохранить резервное копирование своего старого ключа в случае, если Вы забыли систему, к которой у Вас иначе больше не будет доступа.

Обновление: чтобы сделать так, просто работайте:

cd ~/.ssh
mv id_rsa id_rsa_old
mv id_rsa.pub id_rsa_old.pub
mv new-key id_rsa
mv new-key.pub id_rsa.pub

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

2
ответ дан 7 December 2019 в 13:23

Другие вопросы по тегам:

Похожие вопросы: