使用 SSH 为 AWS EC2 配置新用户

使用 SSH 为 AWS EC2 配置新用户

我已经创建了一个 EC2 实例。它具有互联网连接,我可以使用“test_kp.pem”通过 ssh 进入 ubuntu@ip。

我已经创建了一个新用户...useradd test-usertest-user-kp在 AWS EC2 控制台中创建了一个新的密钥对。

我创建了目录 home/test-user/.ssh 和文件 .ssh/authorized_keys

我已运行该命令ssh-keygen -f test-user-kp.pem -y并将内容复制到authorized_keys中。我还修复了.ssh和文件authorized_keys的权限。

现在我尝试执行ssh -i test-user-kp.pem test-user@ip该命令,但失败并显示以下消息:

test-user@ip:权限被拒绝(公钥)。

答案1

出现这种情况有几种可能性。

阅读您的帖子,我想知道您是否将 test-user-pk.pem 的内容复制到了 ~ssh/authorized_keys。如果您这样做了,那么问题就来了。该文件是私钥 - 公钥可以在 test-user-pk.pem.pub 中找到。这很容易验证,因为私钥的格式与公钥完全不同,并且以 -----BEGIN OPENSSH PRIVATE KEY------ 开头,跨越多行 - 而不是一行长行,包含 3 个字段,可能以“ssh-rsa”开头,以 username@hostname 结尾 - 公钥在中间。

否则 -

一般来说,尝试以用户身份通过​​ SSH 登录,并将“-v”标志传递给 SSH,以记录客户端看到的内容,并在执行此操作时查看服务器日志文件。

您可以更进一步,在服务器上的另一个端口上启动 sshd 的第二个实例而不是分离它,然后查看尝试连接时会发生什么。

一些具体的可能性值得关注——

  • SeLinux 是否破坏了实例(即文件权限或类似情况)。我以前见过这种情况,这很麻烦。audit.log 文件会指示是否是这种情况,如果似乎是这种情况,暂时禁用 selinux 可能有助于排除此问题。(我以前见过这种情况,但不是在 Ubuntu 机器上)

  • /etc/ssh/sshd_conf 中有一些东西阻止了协商 - 例如 AllowUsers 列表。

  • 这可能是用户主目录的权限问题吗?

  • 这可能是一些愚蠢的事情,就像你最终添加了密钥一样。

答案2

我以 root 身份创建了“authorized_keys”。为了解决这个问题,我运行了

sudo chown 测试用户 authorized_keys

相关内容