使用 scp 将文件传输到 amazon ec2 实例总是给我拒绝权限(公钥,gssapi-with-mic)
Posted
技术标签:
【中文标题】使用 scp 将文件传输到 amazon ec2 实例总是给我拒绝权限(公钥,gssapi-with-mic)【英文标题】:Transferring a file to an amazon ec2 instance using scp always gives me permission denied (publickey,gssapi-with-mic) 【发布时间】:2013-07-01 04:53:45 【问题描述】:我正在尝试将文件传输到 ec2 实例。我遵循了亚马逊的文档,这就是我的命令的样子:
scp -i [the key's location] Documents/[the file's location] ec2-user@[public dns]:[home/[destination]]
我用正确的东西替换了所有变量,我确定它是正确的密钥并且它具有 400 权限。当我调用该命令时,它会告诉我 RSA 密钥指纹,询问我是否要继续连接。我输入是,它会回复
Permission denied (publickey,gssapi-with-mic)
lost connection
我查看了许多其他关于堆栈溢出的类似问题,但找不到正确的方法。
还在端口 22 上启用了 ssh 流量。
【问题讨论】:
我发现我做错了什么,起初,我有用户名(在本例中为 seqware)而不是 ec2-user,这给了我同样的东西,但是当我替换使用 root@publicdns,它起作用了 【参考方案1】:我也遇到了同样的问题。希望这对你有用。
scp -rp -i yourfile.pem ~/local_directory username@instance_url:directory
权限也应该是正确的才能进行这项工作。
【讨论】:
【参考方案2】:我必须使用 ubuntu@ 而不是 ec2-user@,因为当我在终端中看到 ubuntu@ 时,请尝试更改为您在终端上看到的名称
您还必须在您的计算机中设置 pem 文件的权限
chmod 400 /path/my-key-pair.pem
以下代码会将文件从您的计算机复制到 Ec2 实例。
scp -i ~/location_of_your_ec2_key_pair.pem ~/location_of_transfer_file/sample.txt ubuntu@ec2_your_ec2_instance.compute.amazonaws.com:~/folder_to_which_it_needs_to_be_copied
以下代码会将文件从 Ec2 实例复制到您的计算机
scp -i ~/location_of_your_ec2_key_pair.pem ubuntu@ec2_your_ec2_instance.compute.amazonaws.com:~/location_of_transfer_file/sample.txt ~/folder_to_which_it_needs_to_be_copied
【讨论】:
【参考方案3】:问题可能出在用户名上。我将文件复制到我的 Amazon 实例并首先尝试使用命令:
scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test ec2-user@ec2-xx-yy-zz-tt.compute-1.amazonaws.com:~
并得到错误:权限被拒绝(公钥)。
然后我意识到我的实例是一个 Ubuntu 环境,然后用户用户是“ubuntu”,那么对我有用的正确命令是:
scp -r -i ../.ssh/Amazon_server_key_pair.pem ./empty.test ubuntu@ec2-xx-yy-zz-tt.us-west-2.compute.amazonaws.com:~
文件“empty.test”是一个包含文本“testing ...”的文本文件。将虚拟服务器的地址替换为实例公共 DNS 的正确地址。我已经用 xx.yy.zz.tt 替换了我的实例的 ip。
【讨论】:
对我来说,我忘了在我的公共 DNS 前面添加“ec2-user”【参考方案4】:可能是使用了错误的用户名。发生在我身上的是同样的错误消息 - >权限被拒绝(公钥,gssapi-keyex,gssapi-with-mic)。 失去联系
【讨论】:
【参考方案5】:亚马逊提供的示例是正确的。这听起来像一个文件夹权限问题。如果您创建了您尝试复制到的文件夹与另一个用户或另一个用户创建了它,那么您可能没有复制或编辑它的权限。
如果您有 sudo 能力,您可以尝试自己打开访问权限。虽然不建议这样,你可以试试这个命令:
sudo chmod 777 /folderlocation
这为任何人提供了完整的读/写/可执行权限(因此您不应将其保留在 777),但它会让您有机会测试您的 scp 命令以排除权限。
之后,如果您不熟悉权限,我建议您阅读它。这是一个例子:http://www.tuxfiles.org/linuxhelp/filepermissions.html 通常建议您根据其中保存的信息类型尽可能锁定文件夹。
如果这不是原因,您可能需要检查其他一些事情:
执行“scp -i keyname”命令时,您是否在您的密钥目录中? 您是否有权使用要从中传输的文件夹?祝你好运。
【讨论】:
以上是关于使用 scp 将文件传输到 amazon ec2 实例总是给我拒绝权限(公钥,gssapi-with-mic)的主要内容,如果未能解决你的问题,请参考以下文章
如何将映像传输到 Amazon EBS 卷以供 EC2 使用?