Sublime Text с SFTP: S SH файл ключа игнорируется (Windows) - PullRequest
0 голосов
/ 23 апреля 2020

Я использую Sublime Text с плагином SFTP. Для моего проекта я настроил файл sftp-config. json, в котором указаны детали, необходимые для FTP-соединения. Пока я использую обычный логин с паролем, все работает нормально, и я могу установить sh соединение.

Однако затем я попытался использовать клавишу s sh. Мой файл ключей sh C:/Users/<username>/.ssh/id_rsa. Когда я вручную запускаю sftp на Power Shell, соединение успешно устанавливается.

PS C:\> sftp -i C:/Users/<username>/.ssh/id_rsa <username>@<host>
Connected to <username>@<host>.

Конечно, username и host заменены моими фактическими учетными данными.

Теперь, при попытке сделать то же самое, используя Sublime Text с плагином SFTP, это не работает. Вместо этого при подключении мне предлагается ввести мой пароль, например, когда не с помощью клавиши s sh. Я также удостоверился, что это не пароль запрашиваемого ключа (ключ в настоящее время не имеет пароля), и простое нажатие клавиши ввода без ввода пароля не приведет к успеху. Мне кажется, что плагин просто игнорировал тот факт, что я предоставил ключ S SH: если я введу свой пароль для FTP-сервера , он подключится успешно, но конечно, это не то, что я хочу.

Я думал, что, должно быть, допустил ошибку в файле конфигурации, но не могу понять, что это должно быть. Я также читаю документацию онлайн, и в ней не упоминаются какие-либо дополнительные шаги, которые должны быть необходимы. Вот мой файл конфигурации (с некоторыми заменами, конечно):

{
    "type": "sftp",

    "save_before_upload": true,
    "upload_on_save": false,
    "sync_down_on_open": false,
    "sync_skip_deletes": false,
    "sync_same_age": true,
    "confirm_downloads": false,
    "confirm_sync": true,
    "confirm_overwrite_newer": false,

    "host": "<host>",
    "user": "<username>",
    "remote_path": "<remotepath>",
    "ignore_regexes": [
        "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json",
        "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/",
        "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini"
    ],
    "connect_timeout": 30,
    "ssh_key_file": "C:/Users/<username>/.ssh/id_rsa"
}

В качестве альтернативного подхода я также попытался указать "sftp_flags": ["-i", "C:/Users/<username>/.ssh/id_rsa"] вместо использования параметра ssh_key_file, но безрезультатно.

Кто-нибудь заставил это работать и может дать мне совет, что я делаю неправильно?

1 Ответ

0 голосов
/ 27 апреля 2020

Мне удалось определить проблему: Плагин SFTP для Sublime Text использует psftp (клиент Putty sftp) на Windows. Psftp не работает с ключами OpenS SH, потому что он использует другой формат для файла ключей. Поэтому мне пришлось конвертировать мой ключ OpenS SH в ключ PPK, используя Puttygen (генератор ключей Putty). С помощью этого инструмента я смог загрузить свой ключ и преобразовать его в файл PPK (выберите Conversions > Import key в меню, а затем выберите Save private key). Этот ключ будет работать с плагином Sublime Text.

...