Как добавить ключ RSA в файл author_keys?

Я создал открытый ключ RSA и хочу добавить его в файл authorized_keys, но на моем компьютере с Ubuntu 11.10 такого файла нет.

Как я могу добавить ключ к authorized_keys?


person Raji A C    schedule 12.09.2012    source источник


Ответы (4)


Убедитесь, что при выполнении решения Майкла Крелина вы делаете следующее

cat <your_public_key_file> >> ~/.ssh/authorized_keys

Обратите внимание, что без двойного >> существующее содержимое authorized_keys будет перезаписано (удалено!) и это может быть нежелательно.

person donden1    schedule 21.01.2014
comment
Вам нужно указать, как правильно указать информацию об открытом ключе, просто скопировать и вставить ее не получится. Например: - person eco; 03.03.2016
comment
Можете ли вы объяснить, почему копирование/вставка не будет работать? Мне искренне любопытно. - person mcsilvio; 07.01.2019
comment
Помните, если запустить systemd для перезапуска службы ssh, иначе он не подтянет новые ключи sudo systemctl restart sshd и не будет работать - person Kes; 04.12.2020
comment
@Кес, будет. Пользовательские authorized_keys не хранятся в памяти, а считываются при подключении пользователя. - person Michael Krelin - hacker; 27.05.2021
comment
Спасибо, @MichaelKrelin-hacker, я этого не знал! - person Kes; 27.05.2021
comment
@Кес, пожалуйста. То, о чем вы говорили, относится к файлам в /etc/, таким как sshd_config, ключам хоста и т. д. - person Michael Krelin - hacker; 28.05.2021

mkdir -p ~/.ssh/

Чтобы перезаписать авторизованные_ключи

cat your_key > ~/.ssh/authorized_keys

Чтобы добавить в конец author_keys

cat your_key >> ~/.ssh/authorized_keys
person Michael Krelin - hacker    schedule 12.09.2012
comment
я сгенерировал ключ на стороне клиента и скопировал этот ключ на сервер, но с помощью команды ssh 192.168.2.7 он не позволяет войти в систему. - person Raji A C; 13.09.2012
comment
Не позволяет войти в систему, говоря что? - person Michael Krelin - hacker; 13.09.2012
comment
при выполнении этой команды он запрашивает пароль сервера. Я хочу войти в систему без пароля - person Raji A C; 13.09.2012
comment
Идентификатор (часть паба) находится в ~/.ssh/authorized_keys на удаленном компьютере? Используется ли идентификатор (не часть паба) ssh при попытке входа в систему? Вы можете попробовать указать это явно с помощью -i. Кроме того, вы можете попробовать ssh -v и проверить разрешения ваших авторизованных_ключей на удаленном компьютере. И проверьте логи там. - person Michael Krelin - hacker; 13.09.2012
comment
Можем ли мы как-то проверить, добавлен ли уже ключ? Как это делает ssh-copy-id для удаленной системы - person Dmitriusan; 02.09.2015
comment
@Dmitriusan, конечно можем. Например, выполнив поиск файла authorized_keys. Но если ответ станет непонятным и реализовать все возможности ssh-copy-id, возможно, имеет смысл заменить его указателем на ssh-copy-id ;-) - person Michael Krelin - hacker; 02.09.2015
comment
спасибо, я уже понял, что обычный grep работает, так как каждая запись представляет собой одну строку - person Dmitriusan; 03.09.2015
comment
Помните, что папка .ssh должна быть 700. authorized_keys файл должен быть 600 - person Naramsim; 27.05.2021
comment
@Naramsim, верно, но если вы забудете, sshd напомнит вам (при условии, что вы просматриваете журналы, когда что-то идет не так). - person Michael Krelin - hacker; 27.05.2021

В наборе ssh уже есть команда, которая делает это автоматически. То есть войдите на удаленный хост и добавьте открытый ключ в файл author_keys этого компьютера.

ssh-copy-id -i /path/to/key/file [email protected]

Если ключ, который вы устанавливаете, ~/.ssh/id_rsa, то вы даже можете полностью убрать флаг -i.

Гораздо лучше, чем делать это вручную!

person tkarls    schedule 10.11.2017
comment
Этот совет должен быть намного выше, потому что этот вариант не несет критической опасности повреждения вашего authorized_keys-файла таким образом, что вы можете остаться в затруднительном положении без какого-либо способа войти в систему. - person Torque; 17.03.2021
comment
Порт не по умолчанию? Перейти на ssh-copy-id -p PORT_NUMBER USER@REMOTE_MACHINE - person augusto; 05.05.2021
comment
Этот ответ показывает, насколько важно и как упускается из виду чтение документации. И добавить кое-что полезное: вы можете пропустить -i file, и он скопирует ваш ключ по умолчанию. - person Nebril; 17.07.2021

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

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

это сработало отлично. Все, что вам нужно сделать, это просто заменить

пользователь@192.168.1.1

с вашим собственным пользователем для этого конкретного хоста

person Faisal Sarfraz    schedule 23.02.2016
comment
Как раз то, что я искал. Самый простой способ добавить ключ на удаленный сервер, спасибо! - person Maxime Lafarie; 30.03.2021