概要

概要

新编辑:

所以我回去做了一些重要的测试,并稍微修改了我对问题的看法。

首先,这里有一个完整且易于理解的 SSH 握手图的链接(以达到同一页面):SSH 密钥解释

因此,我清理了用户的 .ssh 文件夹以及我正在使用的两台 Centos7 机器上的根目录 - 控制器是虚拟机,服务器是金属。

以下是感兴趣的 SSHD_Config 值:

#Port22, Protocol 2, PermitRootLogin yes, #StrictModes yes, 
PubKeyAuthentication yes, AuthorizedKeysFile .ssh/authorized_keys,
AllowUsers root me_meaning_me, PasswordAuthentication yes (only to allow ssh-copy-id operations to start), #PasswordAuthentication no, 
#ChallengeResponseAuthentication yes, ChallengeResponseAuthentication no,
ClientAliveTime 120, ClientAliveCountMax 720 for tripleo openstack timeout
UsePAM yes, GSSAPI yes

开始:任何 ~/.ssh/ 位置、me 用户、root 用户、本地或服务器中都没有文件或文件夹。

  1. ssh me@server- 密码已接受 - 最终状态:新本地known_hosts 中的新服务器指纹。
  2. ssh-keygen me@server- 没有可见的结果 - 最终状态; id_rsa 私有,本地 id_rsa.pub 文件~/ssh/
  3. ssh-copy-id me@server- 没有可见的结果 - 最终状态:rsa-shaw在服务器我的~/.ssh/authorized_keys名为me@server.
  4. me@server可以通过 SSH 连接到服务器,但必须提供服务器端密码。
  5. ssh-keygen -f root-key root@server- 无可见结果 - 最终状态:本地 me 中的 root-key rsa 私钥和 root-key.pub 公钥~/.ssh/
  6. ssh-copy-id -i ~/.ssh/root-key.pub root@server- 有关密钥和 root@server 的一些响应必须提供服务器端密码。
  7. 编辑服务器端/etc/ssh/sshd_config- 更改为#PasswordAuthentication yesPasswordAuthentication no
  8. ssh me@server成功并且不需要密码。
  9. ssh root@server因 PublicKey、GSSAPI 错误而失败。
  10. 尝试了 - 中的许多值变化sshd_config,但将它们全部恢复。
  11. 使用 kvm 交换机登录服务器并检查 root 的~/.ssh/authorized_keys文件 - 文件中的单个密钥与为 me@server 生成的密钥相同。
  12. 他们ssh-keygen -f root-key root@sever生成了相同的密钥并添加了me@server身份。
  13. ssh-copy-id -i root-key.pub root@server与 me@server 的密钥相同的密钥移动到根~/.ssh/authorized_keys文件中。

现在,我对这个问题的最初名称是基于在几个小时内多次执行这些步骤,但总是得到相同的结果。

那么现在我们怎么想?

答案1

如果我正确地阅读了你的问题,你似乎陷入了这样一个事实:你的 Mac 没有与你的服务器匹配的用户名(包括 root)。

当登录或设置对服务器的访问时,您实际上不需要在客户端上使用匹配的用户名。如果您不指定用户名,那么 ssh 客户端将采用您当前的用户名,但您可以总是如果您想使用以下形式,请指定不同的用户名:user@remote_host

您提到您正在使用该ssh-copy-id命令。在命令行上,您可以通过键入 来获取相关的用户手册页man ssh-copy-id。作为参考,它应该向您显示以下内容:https://linux.die.net/man/1/ssh-copy-id

概要

ssh-copy-id [-i [identity_file]] [user@]machine

那是来自你的常规的Mac 上的用户可以调用:

ssh-copy-id root@remote-server

或者您可以指定要安装的公钥。例如:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@remote-host

相关内容