Я настраиваю аутентификацию с открытым ключом, используя это руководство: https://help.ubuntu.com/community/SSH/OpenSSH/Keys.
В документации говорится о ~/.ssh/authorized_keys
файл, но нет ~/.ssh/authorized_keys
файл - это мой домашний каталог.
Должен ли этот файл создаваться автоматически?
В Справочная страница Maverick sshd не указывает, создается ли файл при установке OpenSSH, или файл должен быть создан вручную.
Я просто задался вопросом, нормально ли отсутствие этого файла, прежде чем создавать его сам.
~/.ssh/authorized_keys
файл для каждого пользователя. Установка Unix-программы никогда не записывает в домашние каталоги пользователей. Таким образом, по умолчанию файл не будет существовать (что имеет тот же эффект, что и пустой файл).
Если вы генерируете ключ на клиенте, на котором также работает OpenSSH, используйте ssh-copy-id
[как описано] для передачи открытого ключа на сервер, используя для этого один раз ваш пароль для входа на сервер.
Если вы генерируете ключ другим способом, скопируйте id_rsa.pub
файл, из которого вы сгенерировали ключ к ~/.ssh/authorized_keys
на сервере (создать каталог ~/.ssh
если необходимо). Убедитесь, что все три вашего домашнего каталога, ~/.ssh
и ~/.ssh/authorized_keys
доступны для записи только пользователю (без прав для группы или других прав записи). Если вы хотите авторизовать более одного ключа, просто объедините их в ~/.ssh/authorized_keys
(так ~/.ssh/authorized_keys
имеет один открытый ключ на строку).
Если вы используете что-то другое, кроме OpenSSH для генерации ключа, вам может потребоваться преобразовать открытый ключ в формат OpenSSH. Например, в PuTTY используйте «Открытый ключ для вставки в файл authorized_keys».
С этой страницы:
Закрытый ключ хранится на компьютере, с которого вы вошли в систему, а открытый ключ хранится в файле .ssh / authorized_keys на всех компьютерах, на которых вы хотите войти.
При создании ключевого файла с помощью ssh-keygen
, вы получите файлы с именами id_rsa
и id_rsa.pub
. Первый - это ваш закрытый ключ (возможно, защищенный паролем), который всегда должен храниться в секрете. Ты клиент.
Последний - ваш открытый ключ, который может быть передан другой стороне, сервер. Сервер может разрешить использование нескольких открытых ключей. Ключевые файлы - это файлы с открытым текстом, поэтому вы можете открыть их в любом текстовом редакторе. В публичном ключевом файле всего одна строка, эту строку нужно добавить в ~/.ssh/authorized_keys
файл на сервер.
Приведенные ниже частный и открытый ключи генерируются с использованием ssh-keygen -t rsa
. Предыдущая команда создала файлы ~/.ssh/id_rsa
и ~/.ssh/id_rsa.pub
.
Файл закрытого ключа ~/.ssh/id_rsa
выглядит как:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,6D5AD2DF5464E16B4E92E81D095A5E7E
NbCawtGTPOfveFHvV93uw5/veo/fAmbZEcitpNlq/rPEy8ZLo7/0MltFDUupe6dI
...23 lines omitted...
eiau+K6IAbhp84/6ewXPVJ6JbfeS9vyOqkcPaZDlQ3rvbAxU9dfTptc/ZWxVoCDg
-----END RSA PRIVATE KEY-----
Соответствующий открытый ключ ~/.ssh/id_rsa.pub
выглядит как:
ssh-rsa AAAAB3NzaC1yc2EA[some chars omitted]X3aKKB6lOyr0v user@host
Первое слово либо ssh-rsa
(для ключей RSA) или ssh-dss
(для ключей DSA). Вторая часть (AAAAB3...r0v
) - это фактические данные. user@host
это просто комментарий, и его можно заменить чем угодно, например sysadmin from home
.
Просто создайте его с помощью любимого редактора или touch
, но убедитесь, что у него есть необходимые разрешения.
chmod 400 ~/.ssh/authorized_keys
Да, это нормально. Просто создайте его, если хотите добавить ssh-ключи.