标签: winscp

WinSCP:服务器拒绝我们的密钥

好的,我已经与生产计算机上的服务器建立了有效连接。我需要在我的开发计算机上复制它,以便我可以传输我自己的文件。一切都是一样的,直到操作系统。

当我尝试连接时,我得到的只是:

服务器拒绝了我们的密钥。

这是我的日志文件...

. 2013-01-28 15:26:25.738 Session name: hex166t@65.XXX.XX.XXX (Modified stored session)
. 2013-01-28 15:26:25.738 Host name: 65.XXX.XX.XXX (Port: 1XXXX)
. 2013-01-28 15:26:25.738 User name: hex166t (Password: Yes, Key file: Yes)
. 2013-01-28 15:26:25.738 Tunnel: No
. 2013-01-28 15:26:25.738 Transfer Protocol: SFTP
. 2013-01-28 15:26:25.738 Ping type: -, Ping interval: 30 sec; Timeout: 15 sec
. 2013-01-28 15:26:25.738 Proxy: none
. 2013-01-28 15:26:25.738 SSH protocol version: 2; Compression: No
. 2013-01-28 15:26:25.738 Bypass authentication: No
. 2013-01-28 15:26:25.738 Try …
Run Code Online (Sandbox Code Playgroud)

ssh putty winscp private-key

4
推荐指数
1
解决办法
2万
查看次数

WinSCP .NET 程序集在安装到 GAC for SSIS 时抛出“在程序集的位置找不到 winscp.exe 可执行文件”

我有一个包,它使用 WinSCP 从 FTP 下载文件,当我在本地执行它时,它运行得很好。但是当我们从 SSIS 数据库目录的已部署版本运行时,我们遇到了问题。已为 .dll 文件完成 GAC 注册。

下面是我们得到的错误。

在此处输入图片说明

更新

在此处输入图片说明

ssis gac winscp winscp-net

4
推荐指数
1
解决办法
5207
查看次数

使用显式TLS加密设置WinSCP

我正在尝试使用以下设置连接到FTP服务器

winscp UI设置

此设置运行良好,我可以通过GUI连接到FTP服务器(版本5.7.5)

但是,当我尝试将这些设置转换为脚本时

winscp.com /command "option batch abort" "option confirm off" "open ftp://username:password@ftp.example.com:21 -   
explicittls /" "put -filemask=>1D  D:\Backups\*.bak /" "exit"
Run Code Online (Sandbox Code Playgroud)

并运行它cmd,有一个错误消息表明有

命令'open'的参数太多."

我在这里做错了什么以及如何解决它?

ftp ftps winscp

4
推荐指数
1
解决办法
4657
查看次数

通过SSIS连接到SFTP

我正在尝试SFTP通过SSIS软件包连接到服务器。程序包WinSCP使用.txt文件中的以下连接字符串执行:

open sftp://username:fc$#6444@example.com:22
Run Code Online (Sandbox Code Playgroud)

但是,该软件包一直无法连接而失败。与密码中的特殊字符有关吗?

如果替换字符串,则可以连接到其他SFTP,因此我知道它一定与上面的语法有关。我尝试将双引号放在字符串周围,如下所示,但未成功:

open "sftp://username:fc$#6444@example.com:22"
Run Code Online (Sandbox Code Playgroud)

sftp ssis winscp ssis-2012

4
推荐指数
1
解决办法
2564
查看次数

使用VBA运行WinSCP脚本

我可以CMD使用以下代码从Windows中的SFTP下载文件:

WinSCP.com
# Connect to the host and login using password
open user:pw@address
# get all the files in the remote directory and download them to a specific local directory
lcd C:\Users\xx\Desktop
get *.xlsx
# Close and terminate the session
exit
Run Code Online (Sandbox Code Playgroud)

我在线搜索,发现可以将这些代码放在bat文件中并使用

Call Shell("cmd.exe /c C:\Users\xx\Desktop\WinSCPGet.bat", 1)
Run Code Online (Sandbox Code Playgroud)

但是,仅WinSCP.com执行bat文件的第一行。它将弹出cmd窗口,显示此内容,而不执行其他任何操作。 在此处输入图片说明

如何一次执行所有行?

谢谢

excel vba cmd winscp

4
推荐指数
1
解决办法
5193
查看次数

将带有复杂参数的批处理文件命令转换为 PowerShell

我在 .bat 中有以下内容(这有效):

"%winscp%" /ini=nul ^
           /log=C:\TEMP\winscplog.txt ^
           /command "open scp://goofy:changeme@10.61.10.225/ -hostkey=""ssh-rsa 2048 d4:1c:1a:4c:c3:60:d5:05:12:02:d2:d8:d6:ae:6c:5d""" ^
           "put ""%outfile%"" /home/public/somedir/somesubdir/%basename%" ^
           "exit"
Run Code Online (Sandbox Code Playgroud)

我试图将其复制到这样的 powershell 脚本中:

& $winscp "/ini=nul" `
           "/log=C:\TEMP\winscplog.txt" `
           "/command" 'open sftp://goofy:changeme@10.61.10.225/ -hostkey="ssh-rsa 2048 d4:1c:1a:4c:c3:60:d5:05:12:02:d2:d8:d6:ae:6c:5d"' `
           "put `"" + $outfile + "`" /home/public/somedir/somesubdir/" + $basename `
           "exit"
Run Code Online (Sandbox Code Playgroud)

当我运行 .bat 脚本时,文件将上传。

当我运行 .ps1 脚本时,我得到 Host key does not match configured key ssh-rsa

我怀疑我没有在 powershell 中正确格式化命令,并且在 winscp 看到它时主机密钥已经损坏。

我检查了日志,显示的只是来自主机的主机密钥。它没有显示我正在使用的密钥。我通过更改我的主机并注意到它没有出现在日志中来确认这一点。我比较了 .bat 和 .ps1 之间的日志,不同之处在于 ps1 以上述错误终止。

winscp 是一个 sftp 实用程序。

syntax powershell winscp

4
推荐指数
1
解决办法
1044
查看次数

如何使用 WebDav 在 C# 中访问 nextcloud 文件?

当尝试通过 WinSCP 访问 nextcloud 的 WebDav API 时,我面临着正确使用根文件夹、远程路径等的几个问题。为了节省其他人的时间,这里是我想出的将文件上传到的工作代码远程(共享)文件夹。

得到教训:

  1. 服务器名称不带协议提供,这是由 SessionOptions.Protocol 定义的
  2. 根文件夹不能为空,必须至少为“/”
  3. 下一个云提供商/配置定义了根 url,因此在remote.php 后预定义了“webdav”或“dav”。一般情况下使用nextcloud的webapp时在设置部分的左下角可以看到它
  4. “文件/用户”或“文件/用户名”不一定是必需的 - 也由主机/配置定义
  5. 连接用户必须具有给定目录的访问权限您应该通过在 TransferOptions 中提供 FilePermissions 向其他人提供文件访问权限(如果需要)

然而,WinSCP、nextcloud 文档中没有可用的示例,这里也找不到任何内容。

c# webdav winscp nextcloud

4
推荐指数
1
解决办法
4894
查看次数

如何在 WinSCP C# 中使用 Session.GetFiles 下载单个文件

因此,基本上我试图从服务器上的整个文件夹中仅下载一个文件。

文件夹“domain”现在包含这些文件:

文件1.txt
文件2.txt
文件3.txt

因此,正如我在 WinSCP 文档中看到的,如果我只想下载一个文件,我仍然应该使用Session.GetFiles()方法文档)和文件的完整路径。好吧,但我不明白我的问题是什么,因为它不起作用。

session.GetFiles("/domains/domain/File1.txt", Directory.GetCurrentDirectory());
Run Code Online (Sandbox Code Playgroud)

但是,如果我将远程路径更改为整个目录,而不是单个文件,我需要它效果很好,但我不需要所有三个 .txt 文件。

session.GetFiles("/domains/domain/", Directory.GetCurrentDirectory());
Run Code Online (Sandbox Code Playgroud)

.net c# winscp winscp-net

4
推荐指数
1
解决办法
5890
查看次数

PowerShell 中的 WinSCP .NET 程序集 - 创建 SessionOptions - 提供的值无效,或属性为只读

我正在尝试使用 PowerShell 使用 WinSCP 自动传输文件。我已经安装了 .NET 程序集。在我添加的代码中,我为了隐私取出了凭据和主机名,并且我还使用了WinSCPnet.dll. 这是我得到的错误:

错误:提供的值无效,或属性为只读。更改值,然后重试。

$sessionOptions在第 5 行定义了这个。关于我可以做些什么来运行它的任何想法?

try
{
    Add-Type -Path "WinSCPnet.dll"

    $sessionOptions = New-Object WinSCP.SessionOptions -Property @{
        Protocol = [WinSCP.Protocol]::Sftp
        HostName = "HostName"
        UserName = "UserName"
        Password = "Password"
        SshHostKeyFingerprint = "ssh-rsa 2048 Fingerprint here"
    }

    $session = New-Object WinSCP.Session

    try
    {
        # Connect
        $session.Open($sessionOptions)

        # Upload files
        $transferOptions = New-Object WinSCP.TransferOptions
        $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary

        $transferResult =
            $session.PutFiles("Source", "Destination", $False, $transferOptions)

        # Throw on any error
        $transferResult.Check()

        # Print results …
Run Code Online (Sandbox Code Playgroud)

.net ssh powershell winscp winscp-net

3
推荐指数
1
解决办法
3987
查看次数

在 Windows 服务上通过 WinSCP 下载 SFTP 文件冻结

我正在尝试构建一个使用 SFTP 下载一些日志文件并将它们导入数据库的服务。

因为 Delphi 没有自带 SFTP 组件,所以我创建了一个 BAT 文件来使用 WinSCP 下载日志

DownloadLogs.bat:
  WinSCP.com < DownloadLogs.commands

DownloadLogs.commands:
  open sftp://root:password@myserver.com
  option confirm off
  get -delete /var/lib/3cxpbx/Instance1/Data/Logs/CDRLogs files
  exit
Run Code Online (Sandbox Code Playgroud)

这是我的服务:

procedure TsrvCentralita.ServiceExecute(Sender: TService);
const SecondsBetweenExecutions = 10;
var Counter: integer;
    dmLogs: TdmLogs;
begin
  Counter := 0;
  while not Terminated do begin
    Inc(Counter);
    if Counter > SecondsBetweenExecutions then begin
      Counter := 0;
      dmLogs := TdmLogs.Create(Self);
      try
        if dmLogs.DownloadLogs then dmLogs.ImportLogs;
      finally
        dmLogs.Free;
      end;
    end;
    Sleep(1000);
    ServiceThread.ProcessRequests(False);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

这就是我调用 BAT 文件的方式:

function ExecAppWait(AppName: …
Run Code Online (Sandbox Code Playgroud)

windows delphi sftp windows-services winscp

3
推荐指数
1
解决办法
280
查看次数

标签 统计

winscp ×10

winscp-net ×3

.net ×2

c# ×2

powershell ×2

sftp ×2

ssh ×2

ssis ×2

cmd ×1

delphi ×1

excel ×1

ftp ×1

ftps ×1

gac ×1

nextcloud ×1

private-key ×1

putty ×1

ssis-2012 ×1

syntax ×1

vba ×1

webdav ×1

windows ×1

windows-services ×1