我试图使用我的Mac终端scp一个文件从下载(phpMyAdmin我下载在线)到我的亚马逊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 not accessible:表示没有这样的文件或目录。 权限被拒绝(公钥)。 失去联系

都是我的亚马逊钥匙。pem和phpMyAdmin-3.4.5-all-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 not accessible:表示没有这样的文件或目录。 权限被拒绝(公钥)。 失去联系

有人能告诉我怎么解决我的问题吗?

附注:有一个类似的帖子:SCP(安全副本)到ec2实例,没有密码 但这并没有回答我的问题。


当前回答

SCP赞扬

从本地发送文件到远程服务器

sudo scp -i ../下载/new_bb_key. sh。Pem ./dump.zip ubuntu@13.127.124.129:~/。

从远程服务器发送文件到本地

sudo scp -i ~/下载/new_bb_key。pem ubuntu@13.127.124.129:/home/ubuntu/LatestDBdump.zip下载/

其他回答

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

以下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:它将是根目录的路径(在我的例子中,是/home/ubuntu)。在我的情况下,我想下载的文件是在/var/www

它将是你的机器的根路径(在我的例子中,/home/MyPCUserName)

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

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

下面是EC2实例的工作细节:

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

开头有几点注意事项:

注意-i后面三个参数之间的空格 SCP是安全拷贝协议的缩写。知道这些单词会让你更容易记住命令。 -i指示您需要将.pem文件作为下一个参数。如果没有-i,则不需要.pem。 注意EC2实例的目标末尾的:~。

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

chmod 400 yourPublicKeyFile.pem

首先,您应该将.pem文件的模式从读写模式更改为只读模式。这可以通过终端sudo chmod 400 your_public_key.pem中的一个命令来完成