amazon-web-services - AWS ssh 公钥被拒绝
问题描述
有很多关于这个的问题和讨论。我也尝试按照文档进行操作,但无法弄清楚。
基本上我可以使用我的 pem 密钥进行 sshssh -i "xyz.pem" ubuntu@ec2-134-13-11-45.ap-south-1.compute.amazonaws.com
但是现在我需要在没有 pem 的情况下正常 ssh 它,就像ssh ubuntu@ip
它一直显示为权限被拒绝的公钥一样。
所以我使用 keygen 生成公钥,并通过在 ubuntu 实例中创建一个新目录,设置 chmod 700 和 chmod 600 权限,将其.ssh/authorized_keys
从本地系统推送到服务器.ssh
仍然每当我尝试直接访问它时,ssh@ubuntu.ip
我都会不断收到错误..
这是一个非常基本的问题,请帮助我解决这个问题!
解决方案
您似乎正在混合“发送”方和“接收”方。
启动 SSH 连接时,您必须发送 SSH 密钥。这可以通过您显示的选项来完成,也可以通过将数据存储在以下-i
位置来将其配置为SSH 别名.ssh/config
:
Host foo
User ec2-user
HostName 54.1.2.3
IdentityFile ~/xyz.pem
然后这将启动一个 SSH 会话ssh foo
。
在接收方,公钥对必须存储在用户的~/.ssh/authorized_keys
文件中。当 Linux 收到通过 SSH 连接的请求时,它会检查该文件是否有匹配的密钥对。
因此,看起来您在实例上做了正确的事情,但您需要在自己的计算机上配置文件。
推荐阅读
- sql-server-2012 - 在嵌入式 SQL 的打开游标中使用主机数组
- angular - VS Code 修复库的导入路径
- messagekit - 官方示例中消息左对齐和右对齐的条件在哪里?
- python - 用 python 和 Pandas 重塑多个变量
- python - 如何按回车键换行?
- visual-studio-code - 如何使用扩展定义并且不允许以与多个验证器兼容的方式附加属性(JSON 模式草案 7)?
- pandas - 在 Pandas 中分割一个系列
- c# - CS8804:如果存在具有顶级语句的编译单元,则无法指定 /main
- uml - 这个图可以代表一个迭代/集合中的每个吗?序列图还是活动图?
- c++ - Qt6 桌面应用程序和使用 cmake 的共享库