我在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
答案 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
命令将密钥安装到远程服务器。