Visual Studio代码 - 使用SSH身份验证的SFTP扩展

Ami*_*mit 10 ssh visual-studio-code

我在Visual Studio Code工作流程中使用vscode-sftp扩展程序,每当我点击保存时,都会将文件上传到我的远程服务器.我正在尝试实现无密码身份验证,就像我以前使用Sublime Text的SFTP插件一样.但是,对于vscode-sftp,在sftp.json文件中,我必须输入我的密码作为纯文本才能使用:

{
    "host": "mysamplehost.com",
    "port": 22,
    "username": "username",
    "password": "password",
    "protocol": "sftp",
    "agent": null,
    "privateKeyPath": null,
    "passphrase": null,
    "passive": false,
    "interactiveAuth": false,
    "remotePath": "/",
    "uploadOnSave": true,
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我通过SSH连接到我的服务器,我不会被要求输入密码 - 因为我的MacBook中有SSH密钥.如何配置vscode-sftp以使用此身份验证方法?

我在文档中看到以下注释,但是我不知道如何设置它:

  /**
   * string - Path to ssh-agent's UNIX socket for ssh-agent-based user authentication.
   * Windows users: set to 'pageant' for authenticating with Pageant or (actual) path to a cygwin "UNIX socket.
   */
  agent: null, 
  privateKeyPath: null, // absolute path to user private key
  passphrase: null,
  passive: false, // ftp passive mode
Run Code Online (Sandbox Code Playgroud)

Ami*_*mit 15

我想它在跌跌撞撞之后.我就是这样做的.第一次运行:

$ echo $SSH_AUTH_SOCK

输入的路径agent在您的sftp.json文件.还要输入私钥的路径(id_rsa文件).以下配置为我做了诀窍:

"agent": "/private/tmp/com.apple.launchd.nPw17MhOqq/Listeners",
"privateKeyPath": "/Users/amitsn/.ssh/id_rsa",
"passphrase": null,
Run Code Online (Sandbox Code Playgroud)

请注意,我没有密码,所以我把它留空了.如果你有一个,请不要忘记填写这个.


pil*_*lat 13

对我来说,使用这个privateKeyPath选项就足够了:

...
    "host": "my.site",
    "protocol": "sftp",
    "port": 22,
    "username": "username",
    "privateKeyPath": "/Users/username/.ssh/id_rsa",
...
Run Code Online (Sandbox Code Playgroud)

注意:为了使用密钥登录,您需要先使用ssh-copy-id username@my.site命令将密钥安装到远程服务器。

  • 这在 Windows 机器上也适用于我。使用 putty 生成密钥并使用带有正斜杠的 ppk:`code` (2认同)

lix*_*omo 5

你可以这样做。

"agent": "$SSH_AUTH_SOCK"
Run Code Online (Sandbox Code Playgroud)