使用scp在复制文件到Amazon EC2实例?(Using scp to copy a file

2019-06-26 03:55发布

我想用我的Mac终端给scp从下载文件(phpMyAdmin的我在网上下载)到我的Amazon EC2实例。

我使用的命令是:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

错误我: 警告:标识文件myAmazonKey.pem无法访问:没有这样的文件或目录。 权限被拒绝(公钥)。 失去了连接

我的两个myAmazonkey.pem和phpMyAdmin的-3.4.5-全languages.tar.gz都在下载,所以后来我试着

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

和错误我: 警告:标识文件/User/Hello_Kitty22/Downloads/myAmazonkey.pem无法访问:没有这样的文件或目录。 权限被拒绝(公钥)。 失去了连接

谁能告诉我如何解决我的问题呢?

PS有一个类似的帖子: SCP(安全复制)到EC2实例没有密码,但它并没有回答我的问题。

Answer 1:

尝试指定用户是ec2-user ,如

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz ec2-user@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

见连接到Linux / UNIX实例使用SSH 。



Answer 2:

第二个目录是你的目标位置,不存在使用服务器名称。 换句话说,你并不需要为你目前所在的机器提机器名。

scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

-r如果它是一个目录。



Answer 3:

您的密钥必须不公开可见的SSH工作。 如果需要使用此命令:

chmod 400 yourPublicKeyFile.pem


Answer 4:

你应该是你的本地机器上尝试上述scp命令。

在本地机器上试试:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.


Answer 5:

这里有一个EC2实例什么工作的详细信息:

scp -i /path/to/whatever.pem /users/me/path-to-file ec2-user@ec2-55-55-555-555.compute-1.amazonaws.com:~

为开端几点注意事项:

  1. 注意后给予三个参数之间的空间-i
  2. scp代表安全复制协议。 知道的话可以更容易地记住命令。
  3. -i决定了你需要给.pem文件作为下一个PARAM。 如果没有-i ,比你不需要.pem
  4. 注意:~在目的地的EC2实例的结束。


Answer 6:

我有完全相同的问题,我的解决办法是

scp -i /path/pem -r /path/file/ ec2-user@public aws dns name: (留空这里)

一旦你做了这部分,进入SSH服务器和MV文件所需的位置



Answer 7:

scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory


Answer 8:

下面SCP格式为我工作

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt

SampleFile.txt:这将是从根目录(在我的情况,/家庭/ Ubuntu的)路径。 在我的情况,我想下载的文件是位于/ var / WWW

SampleFile2.txt:这将是你的机器的根路径的路径(在我的情况,/家庭/ MyPCUserName)

所以,我必须写下面的命令

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/../../var/www/Filename.zip ~/Downloads


Answer 9:

从本地发送文件到服务器:

SCP -i的.ssh / awsinstance.pem my_local_file ubuntu@XX.XXX.XXX.XXX:/首页/ Ubuntu的

从服务器到本地下载文件:

SCP -i的.ssh / awsinstance.pem ubuntu@XX.XXX.XXX.XXX:/首页/ Ubuntu的/ server_file。



Answer 10:

检查.pem文件的权限...的OpenSSH通常不喜欢世界可读的私钥,并会失败(IIR,SCP不做提供这种反馈给用户一个伟大的工作)。

你能简单地使用该密钥对您的AWS主机的ssh?



Answer 11:

首先,你应该改变的模式.pem从文件读取和写入模式,以只读模式。 这可以仅仅通过单个命令在终端进行sudo chmod 400 your_public_key.pem



Answer 12:

我想上面提到的所有建议,并没有什么工作。 我终止当前的情况下,推出了一个又一个重复完全相同的过程。 这一次,没有任何问题。 有时,它可能是远程AMI的错。



Answer 13:

使用SCP从本地机器的文件复制到一个AWS EC2 Linux实例的过程中被覆盖的一步工序(包括以下提到的点)在该视频 。

要纠正使用SCP这一具体问题:

  1. 你需要指定正确的Linux用户。 从亚马逊 :

    • 对于Amazon Linux中,用户名是EC2用户。
    • 对于RHEL,用户名是EC2用户或根。
    • 为Ubuntu,用户名是ubuntu的或根。
    • 为CentOS,用户名是CentOS的。
    • 对于Fedora的,用户名是EC2用户。
    • 对于SUSE,用户名是EC2用户或根。
    • 否则,如果EC2用户和根不工作,请与您的AMI提供商。
  2. 你的私有密钥必须不公开可见。 运行以下命令,以便只有root用户可以读取该文件。

     chmod 400 /path/to/yourKeyFile.pem 


Answer 14:

我会用:

scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'



文章来源: Using scp to copy a file to Amazon EC2 instance?