[英]File transfer from Windows to Linux failing using ssh2 : ssh: Could not resolve hostname C: Name or service not known
我正在尝试使用JavaScript中的ssh2将Windows计算机中的文件发送到linux服务器,sftp无法正常工作,所以我使用exec并指定了scp命令,但是我遇到了以下错误。
STDERR:ssh:无法解析主机名C:名称或服务未知
var Connection = require('ssh2').Client;
var c = new Connection();
c.on('connect', function () {
console.log('Connection :: connect');
});
c.on('ready', function () {
console.log('Connection :: ready');
c.exec('scp -r C:/myFolder/133.DAT serverFilePath', function(err, stream) {
if (err) throw err;
stream.on('close', function(code, signal) {
console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
c.end();
}).on('data', function(data) {
console.log('STDOUT: ' + data);
}).stderr.on('data', function(data) {
console.log('STDERR: ' + data);
});
});
});
c.on('error', function (err) {
console.log('Connection :: error :: ' + err);
});
c.on('end', function () {
console.log('Connection :: end');
});
c.on('close', function (had_error) {
console.log('Connection :: close');
});
c.on('keyboard-interactive', function (name, instructions, instructionsLang, prompts, finish) {
console.log('Connection :: keyboard-interactive');
finish(['password']);
});
c.connect({
host: 'hostname',
// type: 'sftp',
port: 22,
username: 'username',
password: 'pwd',
readyTimeout: 99999,
tryKeyboard: true,
debug: console.log,
}).then(()=>{
console.log('Something to print');
});
将file1
从host1
复制到本地计算机上的目录todir
的scp
语法是scp host1:/path/to/file1 todir
。 这更清楚地表明C:
在C:/myFolder/133.DAT
理解为源主机名 ,而不是硬盘驱动器标识符。 因此出现错误:系统无法将C
解析为主机名。
现在,如何指定位于驱动器C:
上的文件名,取决于代码在何处运行。 如果您的JS在Windows上本地运行,请参阅所用scp实现的文档。 如果您在cygwin上运行,请尝试/cygdrive/c/path/to/file
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.