ssh 登录与 ssh 身份验证

ssh 登录与 ssh 身份验证

我设置了一个新系统。我必须使用 ssh XXXX@XXXXXX 来登录。它不允许我通过 telnet 登录。但我没有设置任何密钥。所以没有什么可检查的。有人能给我解释一下吗?另外,我还有另一个带有 ssh 和密钥的系统,但它要求用户输入密码,而不是密码短语?谢谢。

答案1

您必须更清楚地说明您的问题才能得到更好的答案,但您不需要密钥即可通过 ssh 登录。您可以使用您尝试登录的用户的密码。

如果现在您的系统不允许您尝试通过密码进行身份验证,则可能将其配置为需要公钥身份验证。编辑/etc/ssh/sshd_config服务器上的文件并确保PasswordAuthentication设置为yes

答案2

Telnet 是一种不同于 SSH 的协议,您不能互换使用这两者。您不需要通过 telnet 连接到您的主机,而是需要使用 ssh 命令行客户端或 Windows 中的 PuTTy 之类的工具来“ssh”。

我不确定你说的“没有什么可检查的”是什么意思,默认情况下 SSH 允许密码和基于密钥的身份验证。

对于其他系统,您必须确保已将密钥设置在正确的位置。其工作方式简述如下:

  1. 用户 mike trys 运行 ssh[电子邮件保护]
  2. 系统默认会在 /home/mike/.ssh/id_rsa 中查找 ssh 私钥。
  3. 如果密钥有密码,它会提示您输入密码,如果没有,它就会使用它。
  4. 另一方面,hosta 将查看 /home/mike/.ssh/authorized_keys 内部并查看是否存在与该私钥匹配的公钥,如果找到,它将对您进行身份验证,否则它将继续进行正常密码验证。

如果您尝试以用户 bob 而不是 mike 的身份运行 ssh,而 mike 没有正确的密钥(或者根本没有密钥),那么您将不会收到输入密钥密码的提示,而远程框将提示您输入密码。

如果您想从一开始就设置密钥认证:

  1. ssh-keygen -t rsa (所有操作均默认,但您需要使用密码)
  2. cat /home/username/.ssh/id_rsa.pub (复制输出)
  3. 将上述命令的输出粘贴到远程主机上的 /home/username/.ssh/authorized_keys 中
  4. 使用您创建密钥的用户通过 ssh 连接到远程主机,并将授权密钥文件存放到该用户。

相关内容