2017-10-03 3 views
2

私が送ったascファイルにパブリックPGPキーを使用してパートナーのftpサイトにファイルをアップロードする作業を進めています。NodeJSのASCファイルとユーザー名/パスワードを使用してSFTPを使用してファイルをアップロードする方法

 -----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サイトに接続でき、hostkeyアルゴリズムがSHA256とMD5の指紋と共にssh-dss 1024であるというメッセージが表示されます。それが有用かどうかは分かりません。

誰もが.ascファイルに関する経験があり、どのようにSFTP接続を確立するために使用されていますか?

編集:私は次のコードでNPMパッケージsftp-uploadを使用して試してみた: Error: Unable to parse given privateKey value 私は、このキーファイルが入っている手段を前提としています。コードを実行するには

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(); 

、私は次のエラーを得ましたsftp_uploadのフォーマットが正しくありません。

答えて

2

ASCファイルは、SFTP接続自体には必要ではなく、ファイルを送信する前に暗号化するためにのみ使用されていました。あなたが先に行くと、それはあなたの状況を解決した場合、これを受け入れることをお勧めします

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'); 
    }); 
+1

:私は、FTPサイトに接続するノードパッケージssh2-sftp-clientを使用して、次のコードでファイルをアップロードすることができました。彼らはここでそのようなことを奨励します。 https://stackoverflow.com/help/self-answer – user8675309

関連する問題