# Как использовать доступ по SSH и SFTP с аутентификацией по ключу

# Для пользователей ОС Windows

# Скачайте утилиты Pageant и PuTTYgen

Скачать утилиты можно на этом сайте (opens new window). Если вы собираетесь использовать WinSCP (opens new window) для SFTP, то эти утилиты устанавливаются вместе с ним.

# Сгенерируйте свою пару публичного и приватного ключей

Запустите puttygen.exe. В окне программы нажмите кнопку Generate и немного поводите указателем мыши по пустой области в верхней части окна.

Затем придумайте пароль для ключа и дважды введите его в полях Key passphrase и Confirm passphrase. Это необязательно, пароль можно оставить пустым. Но мы настоятельно рекомендуем позаботиться о безопасности и придумать длинный и сложный пароль.

После этого сохраните получившиеся ключи, нажав на кнопки Save public key и Save private key. Файл публичного ключа назовите, например, id_rsa.txt, а файл приватного ключа — id_rsa.ppk. Также скопируйте текст из поля Public key for pasting into OpenSSH authorized_keys file и сохраните его в файл id_rsa_openssh.txt.

Обратите внимание

Ваш приватный ключ является секретным — ни в коем случае никому не передавайте его и нигде не публикуйте. Относитесь к нему, как к важному паролю. Публичные же ключи можно передавать и хранить в открытом доступе.

# Запустите программу pageant.exe

После запуска в области уведомлений на панели задач появится иконка программы. Дважды кликните по ней, нажмите в открывшемся окне на кнопку Add key. Далее выберите файл своего приватного ключа и, указав пароль, активируйте его.

# Поместите свой публичный ключ на сервер

# Для использования протокола SSH

Создайте на сервере (с помощью FTP или файлового менеджера контрольной панели) файл ~/.ssh/authorized_keys и поместите в него ваш публичный ключ из файла id_rsa_openssh.txt. Установите права 0700 на папку .ssh и 0600 на файл authorized_keys.

Здесь ~ — это домашняя директория вашего аккаунта (там, где находится папка domains).

# Для использования протокола SFTP

Создайте на сервере (с помощью FTP или файлового менеджера контрольной панели) файл ~/.sftp/authorized_keys и поместите в него ваш публичный ключ из файла id_rsa.txt. Установите права 0700 на папку .sftp и 0600 на файл authorized_keys.

Здесь ~ — это домашняя директория FTP-аккаунта. Если вы собираетесь использовать основной FTP-аккаунт, то папку .sftp нужно создать в вашей корневой директории, рядом с папкой domains, если дополнительный — в той папке, которую вы указывали при создании этого FTP-аккаунта.

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

# Подключайтесь к серверу

Подключайтесь к серверу по SSH с помощью PuTTY или по SFTP с помощью SFTP-клиента, поддерживающего авторизацию по ключу (например, WinSCP или FileZilla) без указания пароля. Программа должна сама определить, что для авторизации необходимо использовать ключ.

# Для пользователей Mac OS и Linux

# Откройте терминал

Введите в консоли команду:

ssh-keygen

Ответ на вопрос об имени файла оставьте пустым (будет взято значение по умолчанию), затем придумайте и введите пароль. Это необязательно, пароль можно оставить пустым. Но мы настоятельно рекомендуем позаботиться о безопасности и придумать длинный и сложный пароль.

В результате в папке .ssh внутри вашей домашней директории появятся файлы key_rsa и key_rsa.pub. Теперь введите следующую команду:

ssh-keygen -ef ~/.ssh/key_rsa_alt > ~/.ssh/key_rsa_alt.pub

Это создаст в той же папке файл key_rsa_alt.pub, в котором будет находиться ваш публичный ключ в немного другом виде.

Обратите внимание

Ваш приватный ключ является секретным — ни в коем случае никому не передавайте его и нигде не публикуйте. Относитесь к нему, как к важному паролю. Публичные же ключи можно передавать и хранить в открытом доступе.

# Поместите публичный ключ на сервер

# Для использования SSH

На сервере (с помощью FTP или файлового менеджера контрольной панели) создайте файл ~/.ssh/authorized_keys и поместите в него ваш публичный ключ из файла key_rsa_alt.pub. Установите права 0700 на папку .ssh и 0600 на файл authorized_keys.

Здесь ~ — это домашняя директория вашего аккаунта (там, где находится папка domains).

# Для использования SFTP

На сервере (с помощью FTP или файлового менеджера контрольной панели) создайте файл ~/.sftp/authorized_keys и поместите в него ваш публичный ключ из файла key_rsa_alt.pub. Установите права 0700 на папку .sftp и 0600 на файл authorized_keys.

Здесь ~ — это домашняя директория FTP-аккаунта. Если вы собираетесь использовать основной FTP-аккаунт, то папку .sftp нужно создать в вашей корневой директории, рядом с папкой domains, если дополнительный — в той папке, которую вы указывали при создании этого FTP-аккаунта.

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

# Активируйте свой ключ на локальном компьютере

Введите в терминале команду:

ssh-add

В ответ на вопрос терминала о пароле укажите тот пароль, который вы придумали при создании ключа.

# Подключайтесь к вашему серверу

Подключайтесь к серверу по SSH через терминал или по SFTP с помощью SFTP-клиента, поддерживающего авторизацию по ключу (например, FileZilla) без указания пароля. Программа должна сама определить, что для авторизации необходимо использовать ключ.