AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 39733
Accepted
Vorleak Chy
Vorleak Chy
Asked: 2009-07-13 23:38:23 +0800 CST2009-07-13 23:38:23 +0800 CST 2009-07-13 23:38:23 +0800 CST

权限被拒绝(公钥)。从本地 Ubuntu 到 Amazon EC2 服务器的 SSH

  • 772

我有一个在 Amazon EC2 实例上的云中运行的应用程序实例,我需要从本地 Ubuntu 连接到它。它可以在一台本地 ubuntu 和笔记本电脑上正常工作。我Permission denied (publickey).在尝试从不同的本地 Ubuntu SSH 到 EC2 时收到此消息。

我认为 Amazon EC2 上的安全设置可能存在问题,它限制了对一个实例的 IP 访问;或者可能需要重新生成证书。

有谁知道 Permission denied 错误的解决方案?

linux amazon-ec2 ssh
  • 17 17 个回答
  • 712645 Views

17 个回答

  • Voted
  1. Best Answer
    Greg Hewgill
    2009-07-13T23:44:01+08:002009-07-13T23:44:01+08:00

    在这种情况下要做的第一件事是使用-v选项 to ssh,这样您就可以看到尝试了哪些类型的身份验证以及结果是什么。这有助于了解情况吗?

    在您对问题的更新中,您提到“在另一个本地 Ubuntu 上”。您是否已将 ssh 私钥复制到另一台机器上?

    • 148
  2. Kjetil Joergensen
    2011-01-06T06:38:40+08:002011-01-06T06:38:40+08:00

    由于没有明确提及,默认情况下 sshd 对authorized_keys文件的权限非常严格。因此,如果对用户以外的任何人authorized_keys都是可写的,或者可以由用户以外的任何人写入,它将拒绝进行身份验证(除非 sshd 配置为StrictModes no)

    我所说的“可写”的意思是,如果任何父目录对用户以外的任何人都是可写的,则被允许修改这些目录的用户可以开始修改权限,以便他们可以修改/替换授权密钥。

    此外,如果/home/username/.ssh目录不属于用户,因此用户没有读取密钥的权限,您可能会遇到问题:

    drwxr-xr-x 7 jane jane 4096 Jan 22 02:10 /home/jane
    drwx------ 2 root root 4096 Jan 22 03:28 /home/jane/.ssh
    

    请注意,简不拥有该.ssh文件。通过修复此问题

    chown -R jane:jane /home/jane/.ssh
    

    这类文件系统权限问题不会出现ssh -v在 sshd 日志中(!),直到您将日志级别设置为 DEBUG。

    • 编辑/etc/ssh/sshd_config. LogLevel DEBUG你想要一条在某处读到的行。使用发行版提供的机制重新加载 SSH 服务器。(service sshd reload在 RHEL/CentOS/Scientific 上。)优雅的重新加载不会丢弃现有会话。
    • 再次尝试验证。
    • 找出您的身份验证设施日志的去向并阅读它们。(IIRC,/var/log/auth.log基于 Debian 的发行版;/var/log/secure关于 RHEL/CentOS/Scientific。)

    更容易找出包含文件系统权限错误的调试输出出了什么问题。请记住将更改还原到/etc/ssh/sshd_config完成后!

    • 81
  3. pkmk
    2010-04-02T13:51:49+08:002010-04-02T13:51:49+08:00

    我收到此错误,因为我忘记添加-l选项。我的本地用户名与远程系统上的不同。

    这不能回答你的问题,但我来这里是为了寻找我的问题的答案。

    • 38
  4. user60587
    2010-11-18T08:29:56+08:002010-11-18T08:29:56+08:00

    我在基于 Ubuntu AMI 的新实例上收到此消息。我使用 -i 选项来提供 PEM,但它仍然显示“权限被拒绝(公钥)”。

    我的问题是我没有使用正确的用户。通过使用 ubuntu@ec2 运行 ssh... 它正常工作。

    • 20
  5. Znarkus
    2011-02-02T06:07:18+08:002011-02-02T06:07:18+08:00

    ssh -v比(当然在我看来)更容易阅读的东西是tail -f /var/log/auth.log. 这应该在您尝试连接的服务器上运行,同时尝试连接。它将以纯文本形式显示错误。

    这帮助我解决了我的问题:

    来自 xx.yy.com 的用户 [用户名] 不允许,因为 AllowGroups 中没有列出任何用户组

    • 17
  6. Sudipta Chatterjee
    2010-12-10T22:15:33+08:002010-12-10T22:15:33+08:00

    检查您的/etc/ssh/sshd_config文件。在那里,找到说

    PasswordAuthentication no
    

    该行需要修改为说是而不是否。另外,之后重新启动 sshd 服务器。

    sudo /etc/init.d/ssh restart
    
    • 11
  7. Eric Hammond
    2011-09-30T13:15:16+08:002011-09-30T13:15:16+08:00

    也许与当前的海报无关,但可能会帮助其他在寻找类似情况的答案时发现这一点的人。我建议不要让 Amazon 生成 ssh 密钥对,而是将您自己的标准默认公共 ssh 密钥上传到 Amazon,并在您运行 EC2 实例时指定它。

    这使您可以在 ssh 中删除“-i”类型语法,将 rsync 与标准选项一起使用,还可以让您在所有 EC2 区域中使用相同的 ssh 密钥。

    我在这里写了一篇关于这个过程的文章:

    将个人 ssh 密钥上传到 Amazon EC2
    http://alestic.com/2010/10/ec2-ssh-keys

    • 7
  8. Patrick Collins
    2011-08-09T13:00:42+08:002011-08-09T13:00:42+08:00

    奇怪的是,我的问题原来是服务器已经重新启动,并且它被分配了一个新的 DNS 名称。我使用的是旧的 DNS 名称。我知道这听起来很愚蠢,但我花了一段时间才弄清楚。

    • 5
  9. Naftuli Kay
    2011-02-17T10:50:21+08:002011-02-17T10:50:21+08:00

    如果您尝试连接到运行 Dropbear 的 CyanogenMod 手机,您应该运行以下几行以确保一切正常:

    chmod 600 /data/dropbear/.ssh/authorized_keys
    

    或者

    chmod 700 /data/dropbear/.ssh/authorized_keys # In case of MacOS X 10.6-10.8
    

    和

    chmod 755 /data/dropbear/ /data/dropbear/.ssh
    

    这为我修复了它,否则什么都无法连接。

    • 2
  10. uichin
    2011-07-10T20:58:22+08:002011-07-10T20:58:22+08:00

    如果您使用的是 CentOS 5,您可能需要StrictModes no在/etc/ssh/sshd_config. 我正在使用 NIS/NFS 共享 /home 目录,并且我正确设置了所有权限,但它总是提示我输入密码。我设置后StrictModes no,问题就消失了!

    • 2

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve