# Как использовать доступ по 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) без указания пароля. Программа должна сама определить, что для авторизации необходимо использовать ключ.