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


90

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

Как добавить ключ authorized_keys?

Ответы:


105

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

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

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


Вы должны указать, как правильно обрабатывать информацию об открытом ключе, простое копирование и вставка не подойдет. Например:
einarc 03

4
Вы можете объяснить, почему копирование / вставка не работает? Мне искренне любопытно.
mcsilvio

50
mkdir -p ~/.ssh/

Чтобы перезаписать authorized_keys

cat <your_key >~/.ssh/authorized_keys

Добавить в конец authorized_keys

cat <your_key >>~/.ssh/authorized_keys

Я сгенерировал ключ на стороне клиента и скопировал этот ключ на сервер, но с помощью команды ssh 192.168.2.7 не разрешил вход в систему.
Raji AC

Не позволяет войти в систему, говоря что?
Михаил Крелин - хакер,

при выполнении этой команды он запрашивает пароль к серверу. Я хочу войти в систему без пароля
Raji AC

Находится ли идентификатор (часть pub) в ~ / .ssh / authorized_keys на пульте дистанционного управления? Используется ли идентификатор (не часть pub) ssh при попытке входа в систему? Вы можете попробовать указать это явно с помощью -i. Кроме того, вы можете попробовать ssh -vи проверить разрешения ваших authorized_keys на пульте дистанционного управления. И проверьте там логи.
Михаил Крелин - хакер,

Можно как-нибудь проверить, добавлен ли уже ключ? Как это делается с помощью ssh-copy-id для удаленной системы
Дмитриусан

32

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

cat ~/.ssh/id_rsa.pub | ssh user@192.168.1.1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

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

user@192.168.1.1

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


31

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

ssh-copy-id -i /path/to/key/file user@host.com

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

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


2
>ssh user@serverip -p portnumber 
>sudo bash (if user does not have bash shell else skip this line)
>cd /home/user/.ssh
>echo ssh_rsa...this is the key >> authorized_keys
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.