在C#中使用WinSCP .NET程序集下载文件时,SSH主机密钥指纹......不符合模式。
我正在编写C#应用程序(如果我能得到此功能,最终想创建Windows服务)使用SCP从服务器下载文件(我仅限于SCP作为唯一的选择).我正在使用winscp .net组件(v 5.15.3). 我在我的PC和服务器之间有一个SSH隧道,因此以下从命令行的工作: ssh user:server 在代码中设置SshHostKeyFingerprint时,我会遇到问题. WinSCP.SessionOptions options = new WinSCP.SessionOptions(); options.HostName = "ip address"; options.Password = "password"; options.PortNumber = 22; options.UserName = "username"; options.Protocol = WinSCP.Protocol.Scp; options.SshHostKeyFingerprint = "
10 2024-04-23
编程技术问答社区
蚂蚁金服的scp任务不工作,即使在ant/lib上有jsch
我需要通过SCP复制战争文件. 我已将jsch-0.1.42.jar添加到$ANT_HOME/lib中,但我仍会遇到此错误: 原因:班级 org.apache.tools.ant.taskdefs.optional.ssh.scp 没找到. 这看起来像Ant的可选组件之一. 这是运行ant -diagnostics的结果,以防万一: http://gist.github.com/320859 解决方案 这看起来像您的问题,从诊断的顶部: 可选任务:不可用 您的$ ant_home/lib目录缺少ant-jsch.jar. 我不确定这是怎么发生的 - 我总是从上下载网站安装了可选任务后,我将删除jsch.jar的旧版本,如@trashgod建议. 其他解决方案 我遇到了相同的问题并将其修复! 请记住,您需要 ant-jsch.jar(来自Ant或Java安装的本地)和更新jsch(在我的情况下为jsch-0.1.46.jar),在ant
14 2024-04-04
编程技术问答社区
通过java进行scp传输
通过Java编程语言执行SCP转移的最佳方法是什么?看来我可能可以通过JSSE,JSCH或有弹性城堡Java图书馆执行此操作.这些解决方案似乎都没有一个简单的答案. 解决方案 我最终使用 jsch - 这很简单,这似乎很简单,似乎扩大了扩展很好(我每隔几分钟抓到几千个文件). 其他解决方案 插头:SSHJ是唯一的理智选择!请参阅以下示例开始:其他解决方案 看一下这里 这是蚂蚁SCP任务的源代码. "执行"方法中的代码是螺母和螺栓的位置.这应该使您对所需的内容有一个清晰的了解.我相信它使用JSCH. 另外,您也可以直接从Java代码执行此蚂蚁任务.
6 2024-04-03
编程技术问答社区
无法连接到beagle bone black
我在USB和以太网上有一个Beaglebone Black.在某个时候,SCP(确切地说是PSCP)不再起作用,但是SSH已有的连接仍然有效.我重新启动了BBB,现在无法再通过SSH连接了.看着LED的闪烁正常,所以我做电源并正常启动. 我确实尝试了ping-没有成功... 当它通过USB连接时,我通常会收到一个连接新网络的消息.但这不是这次.我不确定这是BBB还是我的笔记本电脑的问题,因为在此失败之前我更新了笔记本电脑上的很多问题. 有什么建议该怎么办? 主机上的OS:Ubuntu OS ON BBB:Angstrom 你的 magu _ 解决方案 谢谢大家试图帮助我.事实证明这是一个硬件问题. 我怀疑当我在另一个端口中插入BBB时,我的USB电缆很糟糕.连接正在开始和行驶,当我使用其他电缆时,问题就解决了. 很抱歉不首先排除此问题,我不认为我想失败静态作品.
10 2024-03-29
编程技术问答社区
如何在通过中间服务器连接的本地和远程服务器之间传输数据?
i可以从local登录ssh -X servA,然后从servA 登录ssh -X servB 将数据从local复制到servB,i scp文件从local到servA,然后从servA到servA. 将文件从local直接复制到servB是否可行,反之亦然? 解决方案 您可以将NC(Net Cat)用作SSH的代理. 因此,对于您的示例,编辑您的~/.ssh/config文件以使其看起来像: Host servB ProxyCommand ssh -q servA nc servB 22 只要NC在您的路径中,您现在应该能够SSH或SCP目录 如果您没有NC,则可以使用SSH -W执行此操作,如果您的版本足够新(> = openssh 5.4), Host ServB ProxyCommand ssh -W ServB:22 servA 其他解决方案 在ssh配置文件中使用ProxyCommand 其他解决方案 这是我通常做
10 2024-03-29
编程技术问答社区
用Bash脚本在文件的层次结构中寻找特定的文件
我有一个文件夹,其中有很多文件夹,在每个文件夹中,我都有很多文件.我不知道每个文件可能位于哪个文件夹.我会定期收到需要复制到预定义目的地的文件列表. 脚本将在Unix机器上运行. 所以,我的小脚本应该: 阅读收到的列表 查找列表中的所有文件 通过SCP将每个文件复制到预定义的目标 步骤1和3,我想我会自己管理,但是我该怎么做? 我正在考虑使用"查找"来定位每个文件,并且在找到字符串数组中的位置时.当找到所有文件时,我会循环通过字符串数组,为每个文件安装运行" SCP"命令. 我认为这应该有效,但是我以前从未写过bash脚本,所以有人可以帮助我一点开始吗?我只需要一个基本的"查找"命令,该命令查找文件名并在找到文件时返回文件位置. 解决方案 find $dir -name $name -exec scp {} $destination \;
12 2024-03-29
编程技术问答社区
用bash进行sftp/scp文件传输
我需要将一组文件上传到SFTP帐户. 我的第一个想法是使用php的ssh2_connect()函数,我能够在本地毫无问题.但是,一旦我搬到开发环境,我很快就意识到这不是一个好的解决方案,因为不存在的依赖性太多,并且安装它们将需要太多人的批准太多. 所以,我的下一个想法是使用bash,这是我需要帮助的地方.我将每小时通过Cron运行此BASH脚本,因此需要无人看管.但是,当我运行SFTP/SCP时,需要一个密码. SFTP帐户不允许SSH连接,因此我无法创建授权密钥.我也不想依靠远程计算机上的.ssh文件夹. 任何建议都将不胜感激. 请记住,我无法安装任何内容,因此没有钥匙链,SSHPASS或期望.在 解决方案 最初我试图使用PHP的SSH2_Connect(),因为PHP创建了我需要上传的文件.出于这个原因,最好在我的PHP脚本中进行此SFTP交易,但是由于它不起作用,所以我继续进行bash. 我的解决方案实际上是使用PHP和卷曲: $ch =
18 2024-03-28
编程技术问答社区
传递变量,通过ssh查找-newermt选项
我正在尝试在特定时间内复制一组文件范围内的远程服务器(服务器B),脚本在本地服务器(服务器A)上运行. 我正在使用-Newermt选项来指定我的时间范围. 因此,如果我向远程服务器(服务器b)SSH,则有效: find /appl/backup/monsters/green/y.y.y.y/2016-04-26_08-00-01/jelly/ -newermt "2016-04-26 07:40:00" \! -newermt "2016-04-26 07:50:00" 我得到了指定的时代文件列表. 但是,如果我尝试通过ssh从本地服务器(服务器A)参与其中: #!/bin/bash # CLUSTER="green" node="x.x.x.x" STIME="2016-04-26_08-00-01" #T1=1461678000 #T2=1461678600 T1="2016-04-26 07:40:00" T2="2016-04-26
14 2024-03-28
编程技术问答社区
SCP的实际返回代码
我正在编写一个bash脚本,该脚本会浏览文件名列表,并尝试使用scp从两个服务器复制每个文件为本地文件夹.然后,脚本将本地文件彼此比较.但是,有时,该文件将不存在于一台服务器或另一台服务器上. 首先,我在使用此代码: scp $user@$host:/etc/$file ./$host/conf/ 2>/tmp/Error 1>/dev/null error=$(/tmp/Error 1>/dev/null if [[ $? -ne 0 ]];
6 2024-03-28
编程技术问答社区
如何 scp 名称中包含空格的目录
我现在试图将整个目录从一个群集复制到另一个集群.但是,当名称中有一个空间时,它会失败,而且我不知道如何解决此问题,因为SCP似乎认为我正在复制多个文件.我正在使用一个变量来标记所需的路径,因此似乎不容易通过添加后斜线来解决. 这是我正在使用的代码: if ssh user@ip -i key test -d "'$current_dir'"; then echo "Directory exists. Ready to copy $dir_name." scp -i key -r "$current_dir/$dir_name" user@$ip:"$current_dir/$dir_name" else echo Directory doesn\'t exist. Making a new directory. ssh user@$ip -i key mkdir "'$current_dir'" scp -i key -r "$current_dir/$dir_na
12 2024-03-28
编程技术问答社区
(Scp-Permission Denied (Public Key))
我正在尝试使用Linux命令 scp 将服务器xx.xx.xxx.xx的文件放在我的桌面上.这是我的语法 scp admin@xx.xx.xxx.xx:/scraper/summary.csv /home/barns/Desktop 我正在遇到错误 'permission denied (publickey)' 我的语法不正确? 解决方案 scp admin@xx.xx.xxx.xx:~/scraper/summary.csv /home/barns/Desktop 我需要一个〜符号在目录名称之前 其他解决方案 是的,这是正确的.使用-vvv选项运行命令,以确切打破什么阶段.它可能是本地问题(例如,私钥是可读的),遥控器(例如未找到的公共密钥),或者在交换过程中(例如没有常见的密码).调试输出应为您提供所需的信息.
16 2024-03-28
编程技术问答社区
在2个具有2个不同.pem密钥的服务器之间的Scp命令
我想通过SCP和2个不同的.pem键将文件夹从服务器A转移到服务器B. 这是最好的方法,这实际上会起作用. scp -i ~/Documents/server1.pem -r root@server1.com:~/location/to/dir -i ~/Documents/server2.pem ~/location/to/copy/to 或我必须输入: scp -i ~/Documents/server1.pem -r root@server1.com:~/location/to/dir -i ~/Documents/server2.pem root@server2.com:~/location/to/copy/to 如果我需要输入主机或位置,我只是不确定第二个位置. 非常感谢您的帮助. 解决方案 创建一个config文件,例如~/scp_config: Host src HostName server1.com User ro
8 2024-03-28
编程技术问答社区
在bash变量中转出特殊字符
我正在尝试读取一行包含filepaths的文件,然后将文件scp读取到另一台服务器,但由于文件名中的某些字符,例如'('',','),'&'等.我需要逃脱输入: input.txt : /folder1/folderA/filename+(oh+how+nice,+parantheses) script.sh : #!/bin/sh promote_to=random.server.com dev_catalog=/folderX/ uat_catalog=/folderY/ while read line do uat_path=$(echo "$uat_catalog$line" | sed -e "s/(/\\\(/g" | sed -e "s/)/\\\)/g") dev_path=$(echo "$dev_catalog$line" | sed -e "s/(/\\\(/g" | sed -e "s/)/\\\)/g") scp $dev_path
6 2024-03-28
编程技术问答社区
scp 在复制大文件时停滞
根据实验的需求,我将 mtu 设置为8000.这样做之后,当我使用scp复制大文件时,它会停滞在0.00%上.我尝试了scp -l或scp -C,然后打开/关闭tcp_sack,但它仍然没有用.而且我无法更改MTU大小以进行实验结果比较.还有其他帮助吗? 解决方案 尝试综合解决方案,因为根据您的情况有几个问题和局限性. rsync 我的首选选项:使用 rsync 不给这个问题在我看来,它更具用途,例如它可以跟踪哪些文件已经存在,因此,如果连接确实断开,则可以从停止的位置进行拾取 - 尝试--partial也是 - 除其他方面. 而不是 scp local/path/some_file usr@server.com:"/some/path/" 您只能做 rsync -avz --progress local/path/some_file usr@server.com:"/some/path/" 当scp给我带来同样的问题时,我已经多次对此进行了
14 2024-03-28
编程技术问答社区
如果远程主机上的目录不存在,我如何在不使用ssh-in的情况下创建目录?
我不确定是否可能.基本上,我正在编写一个脚本,让我可以 scp scp 一个文件.到目前为止.参数1是文件和参数2是我希望将其放入远程服务器上的文件夹: function upload { scp $1 myusername@ssh.myhost.net:$2 } 您可能/可能不知道,如果我在调用函数时指定的目录,则传输失败.有没有办法检查目录是否存在于功能中,如果不存在,请创建它. 我宁愿不必每次SSH并创建目录,但是如果我别无选择,那么我别无选择. 解决方案 您可以使用rsync. 例如, rsync -ave ssh fileToCopy ssh.myhost.net:/some/nonExisting/dirToCopyTO 关于rsync的注意: rsync是UNIX的实用程序软件和网络协议,它将文件和目录从一个位置同步到另一个位置.它通过使用rsync算法时使用Delta编码来最大程度地减少数据传输尺寸,该算法比其他工具更
16 2024-03-28
编程技术问答社区
递归地使用scp,但不包括某些文件夹
假设有一些具有这些结构的文件夹 /bench1/1cpu/p_0/image/ /bench1/1cpu/p_0/fl_1/ /bench1/1cpu/p_0/fl_1/ /bench1/1cpu/p_0/fl_1/ /bench1/1cpu/p_0/fl_1/ /bench1/1cpu/p_1/image/ /bench1/1cpu/p_1/fl_1/ /bench1/1cpu/p_1/fl_1/ /bench1/1cpu/p_1/fl_1/ /bench1/1cpu/p_1/fl_1/ /bench1/2cpu/p_0/image/ /bench1/2cpu/p_0/fl_1/ /bench1/2cpu/p_0/fl_1/ /bench1/2cpu/p_0/fl_1/ /bench1/2cpu/p_0/fl_1/ /bench1/2cpu/p_1/image/ /bench1/2cpu/p_1/fl_1/ /bench1/2cpu/p_1/fl_1/ /bench1/2cpu/
14 2024-03-28
编程技术问答社区
得到一个错误EOF:使用ssh时没有找到命令
我正在尝试重命名远程服务器中的文件名,例如文件名dirname.suffix 并将文件复制到我的服务器. 我写了像.... 的代码 #!/usr/bin/bash TRANSFERSERVERXMLS="/emp/transfer/XMLS" REMOTESERVERXMLS="remoteemp/empdir/XMLS" # renaming the filenames in remote server like filename-dirname.suffix ssh abc@xyz REMOTESERVERXMLS=$REMOTESERVERXMLS 'bash -s'
16 2024-03-28
编程技术问答社区
scp:如何发现复制已经完成?
我正在使用SCP命令将文件从一个Linux主机复制到另一个Linux主机. 我在host1上运行SCP,并将文件从host1复制到host2.文件很大,需要一段时间才能复制它. 启动复制后,在host2文件上立即出现.即使复制仍在进行中,我也可以对此文件进行所有操作. 是否有任何可靠的方法可以找出复制是否在主机上完成? 解决方案 我的头顶,您可以做类似的事情: touch tinyfile scp bigfile tinyfile user@host: 然后,当tinyfile出现时,您知道bigfile的传输已完成. 正如注释中指出的那样,这假设scp将按指定的顺序复制文件.如果您不信任它,则可以明确地做它们: scp bigfile user@host: scp tinyfile user@host: 这种方法的缺点是您可能必须两次身份验证.如果这是一个问题,您可以使用 . 其他解决方案 在发送侧(host1)使用这样的脚本: #
14 2024-03-28
编程技术问答社区
如果目标文件夹不存在,scp是否创建它?
我想知道,如果远程服务器上不存在SCP,SCP是否会创建该目标文件夹.例如,这项工作吗? scp -r /data/install/somefolder user@ftpserver.com:/data/install/somefolder 这里的文件夹/data/install/somefolder在FTP服务器上不存在,因此此命令会创建它? n.b.我已经阅读了有关Rsync的信息,但不确定它是如何工作或如何使用它的. 解决方案 用SSH和SCP(而不是Rsync)完成任务:让我们将任务分为2个步骤: 1.如果缺少: 创建目录 ssh user@ftpserver.com "mkdir -p /data/install/somefolder" 2.复制到它: scp -r /data/install/somefolder user@ftpserver.com:/data/install/somefolder 将它们放在一起 ser
8 2024-03-28
编程技术问答社区