Настройка входа на SFTP сервер по ключам в FileZilla

Настройка входа на SFTP сервер по ключам в FileZilla

В данном HOWTO мы подробно рассмотрим как настроить вход на SFTP (over SSH) сервер с использованием ключей в популярном FTP/SFTP клиенте FileZilla.

Введение

SSH ключи используются в качестве наиболее безопасной замены паролей для входа в учётные записи на UNIX системах. SSH ключ имеет открытую и закрытую части. Открытая часть (public key) помещается на сервер в файл

/.ssh/authorized_keys (по умолчанию), а закрытая (private key) должна храниться у пользователя в надёжном месте.

Закрытая часть SSH ключа может быть защищена паролем. В таком случае для авторизации с использованием данного ключа потребуется его указать. Настоятельно рекомендуется всегда защищать SSH ключи сложным паролем, т.к. в случае хранения его в открытом виде и утечки, злоумышленник получит полный доступ над учётной записью, вход в которую возможен с помощью данного ключа.

Генерирование SSH ключа в UNIX

Если у вас нет личного SSH ключа, то вы должны его сгенерировать. Для UNIX систем это делается штатно утилитой командной строки:

Для идентификации ключа рекомендуется указывать свой адрес электронной почты в качестве комментария. Это поможет в дальнейшем администратору определять где чей ключ.

На следующем этапе у вас будет запрошен пароль для защиты личной части (private key). Придумайте и введите сложный пароль.

Генерирование SSH ключа в Windows

На операционных системах семейства Microsoft Windows сгенерировать SSH ключ можно бесплатной утилитой PuttyGen. Загрузите её и запустите.

Главное окно PuttyGen

Для начала процесса проверьте переключатели в самом низу окна. Параметры должны быть установлены как на нашем скриншоте, а именно: Type of key to generate -> SSH-2 RSA, Number of bits in a generated key -> 1024 (допускаются варианты 2048 и 4096).

Сбор энтропии PuttyAgent

После проверки нажмите кнопку Generate и начинайте перемещать курсор мыши в области с прогресс-баром для сбора энтропии до его полного заполнения.

Результат работы PuttyGen

Через несколько секунд вы увидите, что программа завершила генерирование SSH ключа. Вам будет предложено заполнить некоторые поля и сохранить обе его части. Рассмотрим подробнее.

В разделе Public key for pasting into OpenSSH authorized_keys file находится открытая часть ключа. Её следует прописывать в файл

/.ssh/authorized_keys на сервере.

Key fingerprint содержит уникальный отпечаток ключа, который служит для его идентификации и проверки.

В поле Key comment следует указать свой адрес электронной почты. Это поможет в дальнейшем определять где чей ключ.

Обязательно защитите закрытый ключ паролем, для этого укажите его в Key passphrase и Confirm passphrase (они должны совпадать).

Чтобы сохранить SSH ключ, нажмите кнопку Save private key. Ключ будет сохранён в формате Putty (*.ppk), пригодном для использования в Putty Agent и самом Putty (данный формат содержит связку открытый + закрытый ключ).

Если вы не сохранили публичную часть ключа через Save public key, то всегда можете снова загрузить свой ранее сохранённый закрытый ключ (файл *.ppk) кнопкой Load и скопировать открытую часть из верхней части окна.

SSH ключи и FileZilla

Штатно FileZilla поддерживает только личные (private) ключи, хранящиеся напрямую в конфиге программы в расшифрованном виде (без пароля).

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

FileZilla — настройки SSH ключей

Если хотите рискнуть, то для добавления SSH ключа, необходимо нажать кнопку Добавить файл с ключом и найти ключевой файл на диске. Ключи допускаются только в формате Putty без пароля. Если ключ защищён паролем, будет выдан запрос на его расшифровку. Ещё раз напоминаем о том, что так хранить ключи не следует.

В качестве рекомендуемой альтернативы, следует использовать утилиту Putty Agent (pageant). Далее мы подробно рассмотрим как их «подружить» с FileZilla.

Используем Putty Agent

Скачайте и запустите утилиту Putty Agent (pageant). Вы увидите его значок в системном лотке (около часов Windows). Нажмите по нему правой кнопкой мыши и в открывшемся контекстном меню выберите пункт View Keys.

Главное окно Putty Agent

Для добавления ключа необходимо нажать кнопку Add Key и найти файл с закрытым ключом в формате Putty (*.ppk) на диске, после чего ввести пароль (если он защищён паролем).

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

Здесь C:\Putty\ — путь, в который вы скопировали утилиту Putty Agent, а C:\mykeys\mykey.ppk — полный путь к закрытому ключу.

Если в путях имеются пробелы, то необходимо использовать кавычки (как на нашем примере).

Putty Agent и FileZilla

Как мы уже писали выше, FileZilla может использовать Putty Agent для авторизации на SFTP-серверах. Для этого нужно сначала запустить Putty Agent с нужным закрытым ключом (как это сделать указано выше).

Добавление сервера в FileZilla

Откройте менеджер серверов FileZilla, добавьте новый сервер кнопкой Новый сайт, укажите его адрес (поле Хост) и порт (если работает на нестандартном).

В комбо-боксе Протокол укажите SFTP — SSH File Transfer Protocol, а Тип входа — Интерактивный. Далее укажите имя пользователя, под которым вы будете подключаться к серверу (можно не указывать, тогда потребуется вводить вручную при каждом входе; полезно при наличии нескольких учётных записей на сервере). Все остальные поля заполнять не требуется.

Нажмите OK и запустите подключение к серверу. Если утилита Putty Agent запущена с нужным закрытым ключом, то авторизация пройдёт в полностью автоматическом режиме и вы увидите файловую систему удалённого сервера, иначе будет выдана ошибка.

Окончание работы

Сразу после окончания работы с SFTP из соображений безопасности рекомендуется закрыть программу Putty Agent, нажав по её значку в системном трее правой кнопкой и выбрав пункт Exit.

2 комментария к записи

Команда h-keygen генерит ключ который файлзилла не принимает! Как сгенерировать ключ то в убунту для файлзиллы?

📎📎📎📎📎📎📎📎📎📎