连接到 SFTP 服务器

时间:2021-05-04 15:43:11

标签: node.js amazon-web-services sftp

我正在尝试在 AWS 上设置 SFTP 服务器。

我使用 <file src="..\lib\x86\thepackage.dll" target="lib\net452" /> <file src="..\lib\x64\thepackage.dll" target="lib\net452" /> 作为客户端连接到我在 AWS 上的服务器。 我在连接到本地服务器之前已经尝试过这个并且工作成功,现在唯一的区别是我尝试使用 ppk 而不是密码。

我使用 PuttyGen 将我的公钥转换为 ppk,但仍然不喜欢它。

我的连接是这样的:

ssh2-sftp-client

这是我得到的错误:

        await sftp.connect({
            host: process.env.SFTP_HOST,
            port: process.env.SFTP_PORT,
            username: process.env.SFTP_USERNAME,
            privateKey: fs.readFileSync('./transfer_key.ppk')
        })

知道如何以这种方式连接到 AWS 传输吗?

谢谢

1 个答案:

答案 0 :(得分:0)

错误消息暗示它找不到文件,但也许这意味着它找不到有效文件?我认为您的问题可能是 PuttyGen 创建的 .ppk 文件是错误类型的密钥文件。客户端需要“OpenSSH 格式”的私钥,ppk 文件仅用于 putty/pageant/winscp afaik 等 Windows 应用程序。

尝试将您的 .ppk 加载到 puttygen,确保设置了密码,然后使用转换菜单 --> 导出 OpenSSH 密钥选项。这将创建一个新的文本文件,其中包含一个标题行、您编码的私钥和一个在文本编辑器中查看时看起来像这样(只有更长)的页脚:

-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBDIKCAQEAmnsdLEsp2hkdz+kVoCuL6JYiu5t/jUZCeaQc8TRyEeLUsk2H
0wMA8azMyzt+a1JcNa2j+jrE5Fd6UiJ7do6OQFgqLxv48QCpwNximS20yavKNCGs
5HCsP4feVq2/2/IaCMNLEcv2XBweipYyY0ME+w1wSojWwCetMw==
-----END RSA PRIVATE KEY-----