我有一个在 Amazon EC2 实例上的云中运行的应用程序实例,我需要从本地 Ubuntu 连接到它。它可以在一台本地 ubuntu 和笔记本电脑上正常工作。我Permission denied (publickey).
在尝试从不同的本地 Ubuntu SSH 到 EC2 时收到此消息。
我认为 Amazon EC2 上的安全设置可能存在问题,它限制了对一个实例的 IP 访问;或者可能需要重新生成证书。
有谁知道 Permission denied 错误的解决方案?
我有一个在 Amazon EC2 实例上的云中运行的应用程序实例,我需要从本地 Ubuntu 连接到它。它可以在一台本地 ubuntu 和笔记本电脑上正常工作。我Permission denied (publickey).
在尝试从不同的本地 Ubuntu SSH 到 EC2 时收到此消息。
我认为 Amazon EC2 上的安全设置可能存在问题,它限制了对一个实例的 IP 访问;或者可能需要重新生成证书。
有谁知道 Permission denied 错误的解决方案?
在这种情况下要做的第一件事是使用
-v
选项 tossh
,这样您就可以看到尝试了哪些类型的身份验证以及结果是什么。这有助于了解情况吗?在您对问题的更新中,您提到“在另一个本地 Ubuntu 上”。您是否已将 ssh 私钥复制到另一台机器上?
由于没有明确提及,默认情况下 sshd 对
authorized_keys
文件的权限非常严格。因此,如果对用户以外的任何人authorized_keys
都是可写的,或者可以由用户以外的任何人写入,它将拒绝进行身份验证(除非 sshd 配置为StrictModes no
)我所说的“可写”的意思是,如果任何父目录对用户以外的任何人都是可写的,则被允许修改这些目录的用户可以开始修改权限,以便他们可以修改/替换授权密钥。
此外,如果
/home/username/.ssh
目录不属于用户,因此用户没有读取密钥的权限,您可能会遇到问题:请注意,简不拥有该
.ssh
文件。通过修复此问题这类文件系统权限问题不会出现
ssh -v
在 sshd 日志中(!),直到您将日志级别设置为 DEBUG。/etc/ssh/sshd_config
.LogLevel DEBUG
你想要一条在某处读到的行。使用发行版提供的机制重新加载 SSH 服务器。(service sshd reload
在 RHEL/CentOS/Scientific 上。)优雅的重新加载不会丢弃现有会话。/var/log/auth.log
基于 Debian 的发行版;/var/log/secure
关于 RHEL/CentOS/Scientific。)更容易找出包含文件系统权限错误的调试输出出了什么问题。请记住将更改还原到
/etc/ssh/sshd_config
完成后!我收到此错误,因为我忘记添加
-l
选项。我的本地用户名与远程系统上的不同。这不能回答你的问题,但我来这里是为了寻找我的问题的答案。
我在基于 Ubuntu AMI 的新实例上收到此消息。我使用 -i 选项来提供 PEM,但它仍然显示“权限被拒绝(公钥)”。
我的问题是我没有使用正确的用户。通过使用 ubuntu@ec2 运行 ssh... 它正常工作。
ssh -v
比(当然在我看来)更容易阅读的东西是tail -f /var/log/auth.log
. 这应该在您尝试连接的服务器上运行,同时尝试连接。它将以纯文本形式显示错误。这帮助我解决了我的问题:
检查您的/etc/ssh/sshd_config文件。在那里,找到说
该行需要修改为说是而不是否。另外,之后重新启动 sshd 服务器。
也许与当前的海报无关,但可能会帮助其他在寻找类似情况的答案时发现这一点的人。我建议不要让 Amazon 生成 ssh 密钥对,而是将您自己的标准默认公共 ssh 密钥上传到 Amazon,并在您运行 EC2 实例时指定它。
这使您可以在 ssh 中删除“-i”类型语法,将 rsync 与标准选项一起使用,还可以让您在所有 EC2 区域中使用相同的 ssh 密钥。
我在这里写了一篇关于这个过程的文章:
奇怪的是,我的问题原来是服务器已经重新启动,并且它被分配了一个新的 DNS 名称。我使用的是旧的 DNS 名称。我知道这听起来很愚蠢,但我花了一段时间才弄清楚。
如果您尝试连接到运行 Dropbear 的 CyanogenMod 手机,您应该运行以下几行以确保一切正常:
或者
和
这为我修复了它,否则什么都无法连接。
如果您使用的是 CentOS 5,您可能需要
StrictModes no
在/etc/ssh/sshd_config
. 我正在使用 NIS/NFS 共享 /home 目录,并且我正确设置了所有权限,但它总是提示我输入密码。我设置后StrictModes no
,问题就消失了!