SSH:权限被拒绝(公钥)

SSH: Permission denied (publickey)

我正在按照 this tutorial 安装 Ansible。

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

cat ~/.ssh/id_rsa.pub

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

首先,cat命令的输出是:

cat: /home/ubuntu/.ssh/id_rsa.pub: No such file or directory

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

Permission denied (publickey).

需要考虑的几点:

  1. 他们要求我使用 this link 来设置两个 Ubuntu 18.04 服务器。我是为主机做的,但 Ansible 服务器已经存在于 Ubuntu 14.04.
  2. 我跳过了防火墙部分,假设它会让所有端口都可以访问。
  3. 我不使用 DigitalOcean,而是为两台机器使用 EC2(当然在安全组中启用了端口 22)。
  4. 在 "Initial Server Setup with Ubuntu 18.04" 指南中他们犯了一个错误。他们要求我 运行 一个 rsync 命令,但他们忘了告诉我删除 authorized_keys 文件的开头,如 here.
  5. 所述
  6. 我对两台机器和所有用户使用相同的 SSH 密钥。

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

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

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

Simple steps,对于 mac

  1. 创建您的 ssh 密钥
  2. 在 github
  3. 中注册 ssh 密钥