server - 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。
解决方案
我假设您使用的是 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,
});
推荐阅读
- python - 我如何遍历文件中的每一行并将变量分配给这些行
- java - Java中的以下regex是什么意思
- python - 如何格式化嵌套字典列表以以人类可读的形式写入文件
- python - 嵌套for循环以在Python中制作三角形图案
- object-detection - 检测对象并找出点云中该区域内所有对象的比例
- android - 为什么 DataBinding 视图可见性不起作用
- java - 如何从注册的车牌中获取车主信息?
- c++ - 有什么方法可以在 OpenCL 中使用屏障来实现原子功能?
- php - 由于出现致命错误,无法在 PHP 7 中加载类 php-ds 类:找不到类
- azurekinect - Azure Kinect 超时应该多长时间?