我正在尝试使用 SCP 将文件从我的本地主机复制到我的 Amazon EC2 实例并收到错误:
警告:身份文件 blocks_key.pem 不可访问:没有这样的文件或目录。权限被拒绝(公钥)。失去了连接
提示这个错误的命令是:
scp -i ~/Desktop/Blocks/blocks_key.pem ~/Desktop/Blocks/code/www/uploadtest.html ubuntu@ip.address:/var/www
Run Code Online (Sandbox Code Playgroud)
我能够使用相同的 -i ~/Desktop/Blocks/blocks_key.pem 进行 SSH,所以我不清楚为什么这不能正常工作。任何见解将不胜感激!
调试信息:
OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 Mar 2009
Warning: Identity file /Desktop/Blocks/blocks_key.pem not accessible: No such file or directory.
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 184.73.234.234 [184.73.234.234] port 22.
debug1: Connection established.
debug1: identity file /home/ubuntu/.ssh/identity type -1
debug1: identity file /home/ubuntu/.ssh/id_rsa type -1
debug1: identity file /home/ubuntu/.ssh/id_dsa type -1
debug1: Remote protocol …Run Code Online (Sandbox Code Playgroud) 我正在尝试在组织的远程服务器上安装一些博客软件。我试图设置一个 SSH 密钥,但遇到了问题,并决定让博客启动和运行比处理 SSH 密钥问题更重要,所以我ssh-keygen -R remoteserver.com.
现在我可以使用ssh -v remoteuser@remoteserver.com正确的密码成功登录。登录后,我可以四处移动并读取我应该能够读取的任何文件和目录。
但是当我尝试-rw-r--r--使用 VIM编辑现有文件时,它显示为只读,如果我尝试编辑我获得的权限chmod: file.ext: Operation not permitted,如果我尝试scp从我的本地机器创建一个新文件,我会被提示输入远程用户的密码,然后得到scp: /home/path/to/file.ext: Permission denied。
由于在尝试设置 ssh 密钥之前我没有遇到任何这些问题,我怀疑这些异常是其副作用,但我不知道如何解决这个问题。那么像我这样愚蠢的服务器新手需要做什么才能恢复远程用户的编辑能力呢?
我的本地计算机和远程服务器之间的用户 ID 不同。
ssh -v remoteuser@remoteserver.com。
whoami我得到remoteuserscp file.ext remoteuser@remoteserver.com:/path/to/file.ext来自本地目录的scp I ,file.ext同时以本地用户身份登录。
whoami我得到localuser在ls -l两个不同的文件,我已经试过SCP:
-rw-r--r--@ 1 localuser localgroup 20 Feb 11 21:03 phpinfo.php
-rw-r--r-- 1 root localgroup …Run Code Online (Sandbox Code Playgroud) 我正在从服务器下载,使用 FileZilla 的下载速度最高为 1.3MiB/秒,但我可以开始并发下载,它们也将以 1.3MiB/秒的速度下载。那么为什么我不能以超过 1.3MB/s 的速度仅下载一个文件并接近饱和可用带宽(~6+MB/s)?
我知道我可以使用其他一些支持分段下载的 SFTP 客户端,例如 lftp,知道其他开源的好客户端吗?
但我仍然想知道是什么限制了一个文件的下载速度为 1.3MB/s,是 TCP 和缓冲区等的一些技术限制还是一些配置问题?我检查并确定根本没有为 FileZilla 启用流量限制。
我也试过 rsync,它比 FileZilla/SFTP 更糟糕。我也尝试过 WinSCP,无论使用哪种 SCP/SFTP 方法,它都是最慢的。因此,与其他传输方法相比,FileZilla 以 1.3MB/s 的恒定传输速度相当不错。
如果有人对为什么传输峰值为 1.3MB/s 有很好的解释,我真的很想知道,以及是否可以在不诉诸分段下载的情况下增加这一点。服务器正在运行 OpenSSH 6.7p1 (Debian) 客户端是 Windows 上的 FileZilla。
更新:为了响应 Martin 的信息(见下面他的回答),我补充说服务器和正在下载的客户端之间的 ping 是 180 毫秒到 190 毫秒。此外,cpu 使用率非常低,最多 2% 到 8%。我尝试了最新版本的 winscp 5.73 和 sftp 模式,我得到了 555kb/s 和大约 805kb/s 最大的 scp 模式。而如果我在 Filezilla 中启动辅助并发传输,我也会得到恒定的 1.3MiB/s。
那么,正如 Martin 和 Michael 所提到的,服务器的 180 毫秒延迟是否会成为数学上的限制因素?或者还有什么可以归咎于我可以提高吞吐量?如果没有,如果有人知道任何其他(如 lftp 但在 Windows 上运行良好)开源下载器,它是安全的并支持分段下载,我将不胜感激。
我遇到了这篇文章,建议添加以下内容.ssh/authorized_keys以强制执行scp命令:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="scp -v -r -d -t ~/CONTENT" ssh-rsa AAAAMYRSAKEY...
Run Code Online (Sandbox Code Playgroud)
该解决方案效果很好,但我在手册中找不到有关-d和-t选项的任何信息scp。经过一番搜索后,我设法找到了另一篇可以说明一些情况的帖子:
scp
-t通常是 scp 传输的接收端。它由另一个 scp 实例启动,该实例将向接收端发送文件。发送 scp 实例启动接收器,发送 C 行来标记文件即将到来,然后发送文件的数据。
知道这个-d选项有什么影响吗?
另外,出于好奇,有谁知道我是否/在哪里可以找到官方描述。我在源代码中找不到任何内容。
我正在尝试从机器 A 复制文件:
apt policy openssh-client
openssh-client:
Installiert: 1:7.2p2-4ubuntu2.4
Run Code Online (Sandbox Code Playgroud)
到机器 B:
apt-cache policy openssh-client
openssh-client:
Installiert: 1:5.5p1-6+squeeze5
Run Code Online (Sandbox Code Playgroud)
在 A:
scp myfile <server>:/myfile
md5sum myfile
2ba67c5e816350d4d2e2e7fd883037e7
file myfile
myfile: Python script, ASCII text executable
Run Code Online (Sandbox Code Playgroud)
在 B 上:
md5sum myfile
8883620c2a0878da1db273101b55124d
file myfile
myfile: ASCII Java program text
Run Code Online (Sandbox Code Playgroud)
查看文本文件,似乎每一行都比最后一行多一个空格,所以不是:
import argparse, os, sys
from subprocess import check_output
def count_voicemails(dir):
# find is faster than ls, since it does not check attributes
command = 'find {}/INBOX -maxdepth 1 | wc -l'
count = …Run Code Online (Sandbox Code Playgroud) 我需要将一台 Windows 机器上的深层目录复制到另一台 Windows 机器上的“自身”上。我似乎无法让命令正常工作。当前的问题是 scp 似乎正在从源参数中去除斜杠。
scp -v -r 计算机 1:D:\A\B 计算机 2:D:\A\B
我也只是尝试复制到一个不同的名字,比如
scp -v -r 计算机 1:D:\A\B 计算机 2:D:\A\B1
我在服务器 A(RHEL 5.2)上有一个 200GB 的 .tgz 文件。我想将该文件传输到服务器 B(RHEL 5.3)。服务器 B 在 ESXi 4 Update1 上。服务器 B 虚拟机具有 4 个 vCPU,具有 10GB RAM。
服务器 A 和服务器 B 都通过带有本地 IP 地址的以太网电缆连接(不涉及交换机)
scp 给了我大约 3Mbps。有没有办法达到400Mbps?
我正在寻找使用 robocopy 将多个文件夹从目录复制到远程网络共享的解决方案。我想从包含数百个我不感兴趣的文件夹的目录中选择几个文件夹。我想使用正则表达式在 linux 中执行类似于 scp 的操作,但这在 robocopy 中不起作用:
c:\robocopy "c:\results\1319_TC1.*" "\\datastore\somefolder\"
Run Code Online (Sandbox Code Playgroud) 我在从我的办公室使用SCP将文件复制到云服务器时遇到问题。当我执行 17MB 战争文件的 scp 时,它说STALLED,然后重新连接,然后再次说像下面这样:
#scp Desktop/myapp.war user1@204.x.x.x:/tmp/
user1@204.x.x.x's password:
myapp.war 12% 2112KB 736.4KB/s - stalled -^
Run Code Online (Sandbox Code Playgroud)
我检查了它是否是我的 ISP 的问题,但是,检查上传速度,他们说一切都很好,我个人检查了将文件附加到 gmail 中,通常在 3 分钟内上传就可以了。所以我认为 ISP 方面没有问题。
如果他们可以提供帮助,请联系云服务器技术人员,他们证明在云服务器之间发送文件,并说他们这边一切正常。
我试过其他云服务器,试过winSCP,试过rsync但结果是一样的。不知何故,我必须使这项工作保持原样,因为 Web 开发人员正在等待生产部署。
今天找人帮忙复制到staging云服务器,让他的ip在iptables中。这意味着只有从我的办公室 scp 停止,但如果您可以从外面访问,那么一切正常。
我不知道如何解决这个问题。我想我应该有很好的网络方知识。有人遇到过吗,怎么解决?
请需要帮助。谢谢!
在我的Debian挤压服务器,scp并且rsync似乎没有任何东西拷贝过来。虽然与另一台服务器一起工作正常(所以不是客户端问题)。使用 scp 时,它只会创建一个空文件并等待。/etc/bash.bashrc也包含[ -z "$PS1" ] && return在顶部。SSH 工作正常。可能是什么问题?
foo.bar:大小为 10899 字节的纯文本文件
scp -vvv /tmp/foo.bar server:/tmpExecuting: program /usr/bin/ssh host server, user (unspecified), command scp -v -t -- /tmp
OpenSSH_5.8p1-hpn13v10, OpenSSL 1.0.0d 8 Feb 2011
debug1: Reading configuration data /home/alanhaggai/.ssh/config
debug1: Applying options for server
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to server.com [111.222.111.222] port 22.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could …Run Code Online (Sandbox Code Playgroud) scp ×10
ssh ×5
rsync ×3
copy ×2
copying ×2
amazon-ec2 ×1
directory ×1
permissions ×1
powershell ×1
regex ×1
robocopy ×1
sftp ×1
ssh-keygen ×1
ubuntu ×1
winscp ×1