bwe*_*ber 2 windows sftp sublimetext sublime-text-plugin
我正在使用 Sublime Text 和 SFTP 插件。对于我的项目,我设置了一个 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>.
Run Code Online (Sandbox Code Playgroud)
当然,username并host替换为我的实际凭据。
现在,当尝试使用 Sublime Text 和 SFTP 插件执行相同操作时,它不起作用。相反,当连接时,系统会提示我输入密码,就像不使用 ssh 密钥时一样。我还确保它不是它所要求的密钥的密码(该密钥当前没有密码),并且仅按 Enter 键而不输入密码不会导致成功。在我看来,该插件只是忽略了我提供了 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"
}
Run Code Online (Sandbox Code Playgroud)
作为替代方法,我也尝试指定"sftp_flags": ["-i", "C:/Users/<username>/.ssh/id_rsa"]而不是使用ssh_key_file设置,但无济于事。
有谁能做到这一点并且可以给我一些关于我做错了什么的提示吗?
我能够识别问题:Sublime Text 的 SFTP 插件在 Windows 上使用 psftp(Putty sftp 客户端)。Psftp 不适用于 OpenSSH 密钥,因为它使用不同的密钥文件格式。因此,我必须使用 Puttygen(Putty 密钥生成器)将 OpenSSH 密钥转换为 PPK 密钥。使用这个工具,我能够加载我的密钥并将其转换为 PPK 文件(Conversions > Import key从菜单中选择,然后选择Save private key)。然后,该键将与 Sublime Text 插件一起使用。
| 归档时间: |
|
| 查看次数: |
2183 次 |
| 最近记录: |