首页 > 解决方案 > SSH:权限被拒绝(公钥)

问题描述

我正在按照本教程安装 Ansible。

在第 2 步,他们要求我运行:

cat ~/.ssh/id_rsa.pub

在 Ansible 服务器上,以便将其复制粘贴到主机上的 ~/.ssh/authorized_keys。

首先,cat命令的输出是:

cat: /home/ubuntu/.ssh/id_rsa.pub: 没有这样的文件或目录

结果,当我尝试使用 ssh 从 Ansible 服务器连接到主机时,我得到:

权限被拒绝(公钥)。

有几点需要考虑:

  1. 他们让我使用这个链接来设置两个 Ubuntu 18.04 服务器。我是为主机做的,但 Ansible 服务器已经存在于 Ubuntu 14.04 上。
  2. 我跳过了防火墙部分,假设它会使所有端口都可以访问。
  3. 我不使用 DigitalOcean,但两台机器都使用 EC2(当然,在安全组中启用了端口 22)。
  4. 在“使用 Ubuntu 18.04 进行初始服务器设置”指南中,他们犯了一个错误。他们让我运行一个rsync命令,但他们忘记告诉我删除授权密钥文件的开头,如此处所述
  5. 我为两台机器和所有用户使用相同的 SSH 密钥。

标签: ubuntuamazon-ec2sshansibleubuntu-14.04

解决方案


似乎没有防火墙问题,因为您可以连接到 ssh。用户“ubuntu”没有公钥。创建它:

 sudo su - ubuntu
 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 

现在,再次 cat 文件并将其放在服务器上


推荐阅读