我想用我的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实例没有密码,但它并没有回答我的问题。
尝试指定用户是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 。
第二个目录是你的目标位置,不存在使用服务器名称。 换句话说,你并不需要为你目前所在的机器提机器名。
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path
-r如果它是一个目录。
您的密钥必须不公开可见的SSH工作。 如果需要使用此命令:
chmod 400 yourPublicKeyFile.pem
你应该是你的本地机器上尝试上述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:~/.
这里有一个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
文件作为下一个PARAM。 如果没有-i
,比你不需要.pem
。 - 注意
:~
在目的地的EC2实例的结束。
我有完全相同的问题,我的解决办法是
scp -i /path/pem -r /path/file/ ec2-user@public aws dns name:
(留空这里)
一旦你做了这部分,进入SSH服务器和MV文件所需的位置
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:这将是从根目录(在我的情况,/家庭/ 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
从本地发送文件到服务器:
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。
检查.pem文件的权限...的OpenSSH通常不喜欢世界可读的私钥,并会失败(IIR,SCP不做提供这种反馈给用户一个伟大的工作)。
你能简单地使用该密钥对您的AWS主机的ssh?
首先,你应该改变的模式.pem
从文件读取和写入模式,以只读模式。 这可以仅仅通过单个命令在终端进行sudo chmod 400 your_public_key.pem
我想上面提到的所有建议,并没有什么工作。 我终止当前的情况下,推出了一个又一个重复完全相同的过程。 这一次,没有任何问题。 有时,它可能是远程AMI的错。
使用SCP从本地机器的文件复制到一个AWS EC2 Linux实例的过程中被覆盖的一步工序(包括以下提到的点)在该视频 。
要纠正使用SCP这一具体问题:
你需要指定正确的Linux用户。 从亚马逊 :
- 对于Amazon Linux中,用户名是EC2用户。
- 对于RHEL,用户名是EC2用户或根。
- 为Ubuntu,用户名是ubuntu的或根。
- 为CentOS,用户名是CentOS的。
- 对于Fedora的,用户名是EC2用户。
- 对于SUSE,用户名是EC2用户或根。
- 否则,如果EC2用户和根不工作,请与您的AMI提供商。
你的私有密钥必须不公开可见。 运行以下命令,以便只有root用户可以读取该文件。
chmod 400 /path/to/yourKeyFile.pem
我会用:
scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'