我一直在处理一个任务,使用合作伙伴发送给我的公共PGP密钥asc文件,将文件上传到他的FTP站点。 该文件如下所示(其中大部分密钥已被屏蔽):
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP Desktop 10.2.1 (Build 4461)
mQEN... ... ...=K8zL
-----END PGP PUBLIC KEY BLOCK-----
我尝试了几个SFTP node包,但是似乎什么都没有奏效。大多数示例使用.rsa文件,但是我提供的只有这个.asc文件。根据我的研究,我可以看到一些人已经使用了带有此扩展名的文件,但是没有人完全解释过如何使用它们。
我能够使用Filezilla连接到FTP站点,并获得一个消息,其中hostkey算法为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。