标签: scp

WinSCP - SCP 正在工作,但 SFTP 不工作

我正在尝试使用 winSCP 连接到我们的远程服务器。之前是可以用的。但从今天开始我无法使用 SFTP 连接到服务器。如果我将协议更改为 SCP,那么我就可以连接。我也可以使用腻子进行连接。

以下是 winSCP 日志。(删除了主机详细信息)

. 2011-11-07 20:18:54.593 Using SFTP protocol.
. 2011-11-07 20:18:54.593 Doing startup conversation with host.
> 2011-11-07 20:18:54.593 Type: SSH_FXP_INIT, Size: 5, Number: -1
. 2011-11-07 20:18:54.593 Server sent command exit status 127
. 2011-11-07 20:18:54.593 Disconnected: All channels closed
* 2011-11-07 20:18:54.624 (ESshFatal) Connection has been unexpectedly closed. Server sent command exit status 127.
* 2011-11-07 20:18:54.624 Cannot initialize SFTP protocol. Is the host running a SFTP server?
. 2011-11-07 20:31:40.036 …
Run Code Online (Sandbox Code Playgroud)

ssh sftp scp winscp

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

如何在两台服务器之间复制大量(> 100 万)个小文件

我需要将大约 1TB 的由较小文件(大部分小于 100KB)组成的数据迁移到另一台服务器。我什至没有完全列举这些文件,但估计在 1-2 百万之间。

使用 SCP 的初始副本花费了一个多星期。现在我们必须同步更改。每天都会添加数百到数千个文件。

我已经尝试使用 rsync (v3) 但它花费了太长时间。到它完成时,我们将再次恢复数据不同步。

我在这里看到过类似的问题,但它们有点旧,想知道是否有任何新工具可以帮助完成此过程。

由于源数据位于读取性能较差的共享 iSCSI 系统上,问题变得更加复杂。

最新的策略可能是重做数据迁移,并让开发人员编写一个工具来记录迁移过程中添加的所有新文件。唯一标识符的目录结构键非常广泛和深入,因此新文件分散在此结构中,重写应用程序以将新文件放入特定目录是行不通的。

任何策略表示赞赏。

操作系统是 RHEL 5 到 RHEL 6。

linux rsync migration scp

5
推荐指数
2
解决办法
3100
查看次数

更改 `~/.ssh/config` 中的 scp 默认目录

scp(OpenSSH的)命令接受为相对路径host:path/,其是相对于主机上的主目录。我想更改默认目录的位置。

例如,我想创建一个快捷方式伪主机.ssh/config的线沿线

Host bar
   hostName foo
   ## this directive does not actually exist:
   DefaultDirectory /home/me/some/path/here  
Run Code Online (Sandbox Code Playgroud)

这样我就可以写

scp some_file bar:baz
Run Code Online (Sandbox Code Playgroud)

代替

scp some_file foo:some/path/here/baz
Run Code Online (Sandbox Code Playgroud)

openssh 可以吗?

ssh scp

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

带有私钥公钥对的 Vim SCP 参数

目前,我正在尝试使用 Vim 的内置 netrw 插件编辑远程服务器上的文件。我可以使用如下命令通过 SSH 连接到我的 Amazon EC2 服务器:

ssh -i <keyfile> bitname@<ec2-address>
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够使用我自己的 Vim 配置,并且一直在尝试像这样使用 scp:

:e scp://user@<ec2-address>//
Run Code Online (Sandbox Code Playgroud)

但是如果没有参数来输入我的密钥文件,我会收到一个权限被拒绝(公钥)错误。

是否有参数可用于输入我的密钥文件或我忽略的其他解决方案?

提前致谢,

ssh vim scp private-key amazon-ec2

5
推荐指数
1
解决办法
2368
查看次数

如何并行化scp命令?

我需要从SCP的文件machineB,并machineCmachineA。我正在从machineA. 我已经正确设置了 ssh 密钥。

如果文件不存在的machineB,那么它应该是那里machineC。我需要将所有 PARTITION1 和 PARTITION2 文件移动到 machineA 各自的文件夹中,如下所示在我的 shell 脚本中 -

#!/bin/bash

readonly PRIMARY=/export/home/david/dist/primary
readonly SECONDARY=/export/home/david/dist/secondary
readonly FILERS_LOCATION=(machineB machineC)
readonly MAPPED_LOCATION=/bat/data/snapshot
PARTITION1=(0 3 5 7 9)
PARTITION2=(1 2 4 6 8)

dir1=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[0]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1)
dir2=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[1]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1)

length1=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[0]} "ls '$dir1' | wc -l")
length2=$(ssh -o …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu shell bash scp

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

为什么 scp 比 http 慢得多?

我在 Amazon EC2 上有一个实例,其中包含一个大型文件(~180MB)。我需要将该文件复制到我的本地机器上,所以我很自然地尝试了scp. 在多次尝试以获得 20-30kb/s 的最大速度并断开连接(只有一次我在短时间内达到 ~200KB/s,但随后连接断开)后,我尝试了 HTTP。通过 HTTP,我得到了 1MB/s,它上升到了 2MB/s,在不到两分钟的时间内完成了传输。在 scp 上,ETA 大约是三个小时。

scp由于加密,我知道它比 HTTP 慢,但我不认为仅凭这一点就可以导致性能下降约 30 倍。所以我猜有一些限制正在进行,可能是在我的 ISP 处。有什么办法可以确定吗?还是有其他原因?

http scp network-speed amazon-ec2

5
推荐指数
1
解决办法
4686
查看次数

从命令行而不是文件将私钥传递给 scp

有没有办法将私钥的内容直接传递给scp命令,而不必将其复制到文件并通过-i /path/to/key.pem选项指向它?

所以,而不是做:

scp -i key.pem source target

我可以执行以下操作吗?

scp -i '-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAMIIEowIBAA...\n' source target

当然,我试过这个,但它不起作用,但也许这可以通过一些 BASH 管道、输出重定向或类似的东西来实现。

我需要这样做的原因是因为我无法将密钥存储在文件系统中(这是一个非常漫长而无聊的故事),并且该命令每次都需要使用不同的密钥执行数百万次,因此额外的磁盘 i/o 对我们的结果很重要。

bash scp private-key

5
推荐指数
1
解决办法
9660
查看次数

SCP 在文件传输开始前挂起

我正在尝试使用非常基本的 scp 命令将文件从本地系统上的虚拟机(Ubuntu 18.04)移动到远程服务器。此问题仅存在于一台特定服务器上,其他服务器工作正常,因此这不是一个普遍问题。

scp <file name> <user>@<complete_hostname>:~/
Run Code Online (Sandbox Code Playgroud)

但此命令不会在身份验证成功后继续进行。

SCP Log: (from local machine, Ubuntu 18.04)
==========
debug1: Next authentication method: publickey
debug1: Offering public key: 
RSA SHA256:<key> /home/username/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279 
debug1: Authentication succeeded (publickey).
Authenticated to 'HOSTNAME' ([10.6.26.145]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LANG = en_IN
debug1: Sending command: scp -v -r -d -t ~/received/


Form another …
Run Code Online (Sandbox Code Playgroud)

file-sharing file-transfer scp

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

使用 scp 时权限被拒绝,但可以 ssh

我正在尝试将文件从本地桌面复制到远程服务器。

是 - 我想要复制到的远程目录设置为chmod 777 是 - 服务器受密码保护,并且我确信我有正确的密码,因为我能够通过 ssh 连接到服务器。

该服务器适用于 Drupal 7 站点,我在 Windows 10 系统上尝试过Gitbash和 Windows PowerShell。该服务器由Cisco AnyconnectArmor进行保护和管理。

我不知道问题是什么..任何人都可以提供一些指导吗?

谢谢!

我的调试输出(我已交换了用户名<my-user>和 IP 地址xxx.xxx.xx.xx):

PS C:\Users\Jill> scp -v ~/logo.png <my-user>@xxx.xxx.xx.xx:/var/www/html/sites/all/themes/bootstrap/bootstrap_subtheme
Executing: program ssh.exe host xxx.xxx.xx.xx, user <my-user>, command scp -v -t /var/www/html/sites/all/themes/bootstrap/bootstrap_subtheme
OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4
debug1: Connecting to xxx.xxx.xx.xx [xxx.xxx.xx.xx] port 22.
debug1: Connection established.
debug1: identity file C:\\Users\\Jill/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory …
Run Code Online (Sandbox Code Playgroud)

permissions file-transfer scp

5
推荐指数
1
解决办法
7025
查看次数

有没有办法通过脚本将 SSH/SCP 以不同的用户身份连接到另一台服务器?

我需要自动化一种将文件分发到许多服务器的方法。问题当然是我需要使用安全协议(SSH 或 SCP)并且每个服务器上的用户名/密码不同。

场景是我们有一个主服务器 a,用户 a_prod,我们需要将更新的脚本/配置等发送到服务器 b、c、d ……在这些服务器上,用户名是 b_dev、c_test、d_prod每个都有唯一的密码。

出于一些原因,用户名需要在不同环境中是唯一的,处理 DB2 和公司安全。

共享密钥在这种情况下不起作用,因此我需要通过脚本传递用户名和密码。是AIX环境,我没有安装expect的能力。

有任何想法吗?

下面的多个回复中提到了共享密钥:我尝试了几种方法来做到这一点,我认为主要问题是远程用户 ID 不存在于任何其他主机上,因此我无法在主机上为它们执行 ssh-keygen我想通过 ssh 执行共享密钥实现,主用户 (a_prod) 具有多个身份,具体取决于目标主机 (b_dev、c_test_d_prod)。这些用户的私钥需要在主机a上为远程用户生成,然后他们的公钥需要复制到目标主机。

automation ssh scp

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