如何使用SFTP中的pem文件将EC2实例与VSCode Directy连接

时间:2019-01-28 12:31:12

标签: amazon-web-services amazon-ec2 visual-studio-code

我正在尝试使用SFTP从VS Code直接连接EC2实例。我可以使用[password]类型连接其他ftp服务,但是对于EC2实例,我只有.pem文件。 期望这样,但是使用公钥.pem文件

{
"protocol": "sftp",
"host": "localhost",
"port": 22,
"username": "username",
"remotePath": "/"
}

5 个答案:

答案 0 :(得分:18)

如果要将VS Code连接到AWS EC2,请使用Remote Development扩展包并将其用于SSH。 .pem文件和标准SSH配置文件位于:

C:\ Users \ YourName \ .ssh \

Host aws-ec2
     HostName example.dev
     User example
     IdentityFile c:\Users\YourName\.ssh\aws-example-user.pem

我写了一篇文章,详细介绍了整个VS Code to AWS EC2的设置。

答案 1 :(得分:2)

尝试一下 VScode上的config.json

{
    "remotePath": "/",
    "host": "<IP-OR_EC2-INSTANCE-HOST-NAME>", 
    "username": "USERNAME",
    "password": "PASSWORD",
    "port": 22,
    "secure": true,
    "protocol": "sftp",
    "uploadOnSave": true, 
    "passive": false,
    "debug": true,
    "privateKeyPath": "<PATH-TO-PEM-FILE>",
    "passphrase": null,
    "ignore": [
       ------
    ],
    "generatedFiles": {
        "uploadOnSave": false,
        "extensionsToInclude": [],
        "path": ""
    }
}

答案 2 :(得分:1)

按ctrl + Shift + P打开sftp.json配置文件,然后键入SFTP:Config并编辑“主机”,“ privateKeyPath”,然后保存json文件

{
"name": "GIVE ANY NAME",
"host": "ec2-.........compute.amazonaws.com",
"protocol": "sftp",
"port": 22,
"username": "ec2-user",
"privateKeyPath": "SPECIFY YOUR PATH/FILENAME.pem",
"remotePath": "/",
"uploadOnSave": true
}

答案 3 :(得分:1)

在我的Mac OS Catalina 10.15和Visual Studio 1.39.0中 有效,使用Key Pem:

注意:privateKeyPath是计算机中key.pem的路径。

{
    "name": "id0000533-test",
    "protocol": "sftp",
    "host": "ec2-12-123-123-123.eu-west-1.compute.amazonaws.com",
    "remotePath": "/var/www/laravel",
    "privateKeyPath": "../keypem/id0000533-test.pem",
    "username": "admin",
    "port": 22,
    "secure": true,
    "uploadOnSave": true,
    "passive": false,
    "debug": true,
    "ignore": [
        "\\.vscode",
        "\\.git",
        "\\.DS_Store"
    ],
    "generatedFiles": {
        "uploadOnSave": true,
        "extensionsToInclude": [],
        "path": "./"
    }
}

答案 4 :(得分:0)

新的 VSCode 远程 SSH 出现错误,有两件事对我有用:

  1. 恢复到 Remote-SSH 0.49 或之前

  2. 更改 pem 文件的权限以将用户列为唯一所有者并删除其他用户的继承权。

经过大量的反复试验,Remote-SSH 再次运行,这次是运行 Ubuntu 的 Amazon EC2。