如何在NodeJS中使用ASC文件和用户名/密码通过SFTP上传文件

我一直在执行一项任务,使用他发送给我的asc文件中的公共PGP密钥将文件上传到合作伙伴的ftp站点。该文件如下所示(已删除大部分密钥):

      -----BEGIN PGP PUBLIC KEY BLOCK-----
      Version: PGP Desktop 10.2.1 (Build 4461)

      mQEN... ... ...=K8zL
      -----END PGP PUBLIC KEY BLOCK-----

我已经尝试了几个SFTP节点程序包,但是似乎还没有任何工作。大多数示例使用.rsa文件,但我提供的只是此.asc文件。从我的研究中,我可以看到有些人使用了带有此扩展名的文件,但没有人完全解释如何使用。

我能够使用Filezilla连接到FTP站点,并收到一条消息,指出主机密钥算法是ssh-dss 1024以及SHA256和MD5指纹。我不确定这是否有帮助。

是否有人对.asc文件有经验,如何使用它们来建立SFTP连接?

编辑:我尝试使用npm包sftp-upload与以下代码:

    var SftpUpload = require('sftp-upload'), fs = require('fs');
    var options = {
        host:'ftp.partnersite.com',
        username:'TempUserName',
        path: './CSV',
        remoteDir: '/',
        privateKey: fs.readFileSync('pgpkeyfile.asc'),
    },
    sftp = new SftpUpload(options);

    sftp.on('error', function(err) {
        throw err;
    })
    .on('uploading', function(progress) {
        console.log('Uploading', progress.file);
        console.log(progress.percent+'% completed');
    })
    .on('completed', function() {
        console.log('Upload Completed');
    })
    .upload();

在运行代码时,出现以下错误:Error: Unable to parse given privateKey value我认为这意味着此密钥文件的sftp_upload格式不正确。

事实证明,SFTP连接本身不需要ASC文件,而是仅在发送文件之前将其用于加密文件。我能够使用节点包ssh2-sftp-client连接到FTP站点并使用以下代码上传文件:

    sftp.connect({
        host: 'ftp.site.com',
        port: '22',
        username: 'myusername',
        password: 'mypassword',
        algorithms: {
          serverHostKey: [ 'ssh-dss' ],
          kex: ['diffie-hellman-group14-sha1'],
          cipher: ['aes128-cbc']
        }
    }).then(() => {
        sftp.put('./CSV/myspreadsheet.csv', '/myspreadsheet.csv', false);
    }).then((data) => {
        console.log(data, 'the data info');
    }).catch((err) => {
        console.log(err, 'catch error');
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用@WithMockUser并通过属性文件传递用户名和密码?

如何在密码文件中添加多个用户名和密码作为字典?

如何在控制台中创建登录名,在其中使用存储在文件 c# 中的用户名和密码进行身份验证

如何从CSV检查用户名和密码。文件

使用bash从Txt文件设置用户名和密码

如何使用用户名和密码访问Active Directory上的用户文件夹?

如何在PowerShell控制台中使用用户名和密码使用wget

Kafka-如何在springboot yml文件中定义用户名和密码?

如何在终端的一行中使用用户名和密码运行openconnect?

如何在Axios中使用用户名和密码访问数据库

如何使用用户名和密码保护纯文本凭证文件?

如何使用提供的用户名和密码来读取Java文件

如何使用CCDT文件,用户名和密码在Python中连接到IBM MQ

如何在Django Restfull API中使用用户名和ID创建存储文件夹

如何在Firebase中使用用户名,电子邮件和密码创建新用户?

如何在所有php文件中使用用于登录的用户名

从文件中提取存储的用户名和密码并通过python脚本使用的有效方法是什么?

我可以在Spring Boot + Hibernate中通过文件加载用户名和密码吗?

如何在不提供用户名和密码的情况下访问共享文件夹

如何在Java客户端中使用用户名和密码(无SSL)连接到Elasticsearch?

从文件中读取用户名和密码

在.xspf文件中烘烤用户名和密码

读取 .txt 文件中的用户名和密码

如何在nodejs中设置ftp-srv的用户名和密码?

在python中使用硒填充用户名和密码

如何使用Selenium框架从受用户名和密码保护的网站上下载文件?

如何使用Java在SOAP UI中使用用户名和密码发送SOAP请求

如何在Git中保存用户名和密码?

如何在 Git 中保存用户名和密码?