使用N / SFTP模块创建从NetSuite到SFTP的连接时,我遇到错误状态:
“ FTP_INCORRECT_HOST_KEY”,“消息”:“提供的主机密钥不匹配 远程服务器的指纹。”
我曾尝试与服务器团队联系,但没有希望。有人可以建议我如何解决此问题,或者如何从服务器获取授权的指纹主机密钥。
我已经在下面提到的工具的帮助下尝试了Suitescript 2.0模块(N / SFTP)。
https://ursuscode.com/netsuite-tips/suitescript-2-0-sftp-tool/
/**
*@NApiVersion 2.x
@NScriptType ScheduledScript
*/
define(['N/sftp', 'N/file', 'N/runtime'],function(sftp, file,runtime) {
function execute(context)
{
var myPwdGuid = "Encrypted password by GUID";
var myHostKey = "Some long Host key around 380 characters";
// establish connection to remote FTP server
var connection = sftp.createConnection({
username: 'fuel_integration',
passwordGuid: myPwdGuid, // references var myPwdGuid
url: '59.165.215.45',//Example IP
directory: '/sftproot/TaleoSync',
restrictToScriptIds : runtime.getCurrentScript().id,
restrictToCurrentUser :false,
hostKey: myHostKey // references var myHostKey
});
// specify the file to upload using the N/file module
// download the file from the remote server
var downloadedFile = connection.download({
directory: '/sftproot/TaleoSync',
filename: 'Fuel Funnel Report_without filter.csv'
});
downloadedFile.folder = ;
downloadedFile.save();
context.response.write(' Downloaded "Fuel Funnel Report_without filter" to fileCabinet');
}
return {
execute: execute
};
});
我希望在SFTP和NetSuite之间建立连接,以从SFTP提取文件并将其放置到NetSuite文件柜中。
答案 0 :(得分:0)
几件事:
restrictToScriptIds : runtime.getCurrentScript().id,
restrictToCurrentUser :false,
不属于createConnection签名。当您创建Suitelet来存储您的凭证时,应该使用这些凭证。
但是,可以通过在Linux机器上使用ssh-keyscan处理主机密钥投诉。
ssh-keyscan 59.165.215.45
应使用服务器名称,ssh-rsa和长的base64字符串重播。复制该字符串,使其以myHostKey结尾,并将hostKeyType设置为RSA。