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

时间:2017-10-20 15:31:48

标签: ssh visual-studio-code

我在Visual Studio Code工作流程中使用vscode-sftp extension将文件上传到我的远程服务器,每当我点击保存时。我正在尝试实现无密码身份验证,就像我以前使用Sublime Text的SFTP plugin一样。但是,对于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,
    ...
}

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

我在documentation中看到以下评论,但我不知道如何设置:

  /**
   * 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

3 个答案:

答案 0 :(得分:11)

我在this绊倒后想通了。我就是这样做的。首先,运行:

$ 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,

请注意,我没有密码短语,因此我将其保留为空。如果你有一个,请不要忘记填写这个。

答案 1 :(得分:1)

您可以这样做。

"agent": "$SSH_AUTH_SOCK"

答案 2 :(得分:1)

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

...
    "host": "my.site",
    "protocol": "sftp",
    "port": 22,
    "username": "username",
    "privateKeyPath": "/Users/username/.ssh/id_rsa",
...

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