Sublime Text with SFTP: SSH key file is ignored (Windows)

问题描述 投票:0回答:1

我正在使用带有SFTP插件的Sublime Text。在我的项目中,我设置了一个sftp-config.json文件,指定了FTP连接所需的细节。只要我使用普通的用户密码登录,一切都很好,我可以建立一个连接。

然而,我尝试使用ssh密钥来代替。我的ssh密钥文件是 C:/Users/<username>/.ssh/id_rsa. 当我在power shell上手动运行sftp时,连接成功建立。

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

当然了 usernamehost 被替换为我的实际凭证。

现在,当我试图使用SFTP插件的Sublime Text做同样的事情时,它不能工作。相反,当连接时,我被提示输入我的密码,就像当 使用ssh密钥。我也确定它问的不是密钥的密码(密钥目前没有密码),只按回车键而不输入密码也不会成功。在我看来,这个插件似乎忽略了我已经提供了一个SSH密钥的事实:如果我输入我的 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 设置,但无济于事。

有谁能让这个功能发挥作用,并给我一个提示,我做错了什么?

windows sftp sublimetext sublime-text-plugin
1个回答
0
投票

我能够确定问题所在:Sublime Text的SFTP插件在Windows上使用psftp(Putty sftp客户端)。Psftp不能和OpenSSH密钥一起使用,因为它使用不同的密钥文件格式。因此,我不得不使用Puttygen(Putty密钥生成器)将我的OpenSSH密钥转换为PPK密钥。使用这个工具,我能够加载我的密钥,并将其转换为PPK文件(选择 Conversions > Import key 然后从菜单中选择 Save private key). 这个键就可以和Sublime Text插件一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.