首页 > 解决方案 > N/sftp 模块 - FTP_CANNOT_ESTABLISH_CONNECTION

问题描述

我需要使用私有 rsa 密钥来连接服务器,该文件包含的密钥如下。

-----BEGIN OPENSSH PRIVATE KEY-----
key 
-----END OPENSSH PRIVATE KEY-----

当我尝试上传它时,Setup/Compagny/Keys/add 我收到以下错误:意外错误

如果我尝试使用以下 bash 命令将其转换为 .pem:

ssh-keygen -p -N "" -m pem -f /path/to/key 

(控制台日志密钥有注释“amillet@LAPTOP-Q89B7RU7”您的身份已使用新密码保存)

我能够创建密钥,因此我尝试与以下代码建立连接:

sftp.createConnection({
    username: ID_OF_CONNECTION,
    keyId: KEY_ID
    hostKey: HOST_KEY,
    url: URL_SERVER,
    port: PORT_SERVER,
    });

我收到以下错误:“FTP_CANNOT_ESTABLISH_CONNECTION”,“details”:“无法建立与 Auth 的连接失败。”

然后我尝试通过 FileZilla 使用相同的文件 (KEY_ID) 和相同的信息进行连接,除了 HOST_KEY 由 filezilla 检索

在我的代码中 HOST_KEY 是

ssh-keyscan -t rsa -p ${PORT_SERVER} ${URL_SERVER} 

从我的终端执行

我不明白为什么来自 fileZilla 的相同信息允许我连接到服务器,但不能来自 NETsuite。

标签: serverconnectionsftpnetsuite

解决方案


我假设您使用的是 Setup -> Company Keys 中的密钥 ID

您的示例缺少 hostKeyType 参数

hostKeyType: 'rsa'

所以:

sftp.createConnection({
    username: ID_OF_CONNECTION,
    keyId: KEY_ID
    hostKey: HOST_KEY,
    hostKeyType: 'rsa',
    url: URL_SERVER,
    port: PORT_SERVER,
});

推荐阅读