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

90

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

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

Раджи AC
источник

Ответы:

105

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

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

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

donden1
источник
Вы должны указать, как правильно обрабатывать информацию об открытом ключе, простое копирование и вставка не подойдет. Например:
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флажок.

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

tkarls
источник
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
i_tanova
источник