使用公钥-私钥通过 SSH 进入远程服务器

使用公钥-私钥通过 SSH 进入远程服务器

我最近在两台 Linux 机器上设置了 ssh(我们称它们为服务器 a、客户端 b)。我使用 ssh key gen 在客户端 b 机器上生成了两个 ssh 身份验证文件,并且可以在 .ssh 目录中看到公共文件和私有文件。我将它们命名为“example”和“example.pub”。

然后我将 example.pub 添加到了服务器 a 的 auth 文件中。当我尝试通过 ssh 进入服务器 a 时,它仍然要求密码验证,而我想要的是无密码登录(客户端 b 上的私钥无需密码即可设置)。

当我尝试使用 '-v' 进行 ssh 时,得到以下输出:

debug1: Next authentication method: publickey
debug1: Trying private key: /Users/abc/.ssh/identity
debug1: Offering public key: /Users/abc/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Offering public key: /Users/abc/.ssh/id_dsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,keyboard-interactive
debug2: we did not send a packet, disable method
debug1: Next authentication method: keyboard-interactive
debug2: userauth_kbdint
debug2: we sent a keyboard-interactive packet, wait for reply
debug2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 1
Password: 

请帮忙。

答案1

您也可以使用“ssh-copy-id”将公钥上传到服务器。

语法是:

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

如果这不起作用,请回答上述 Trevor 的问题。

答案2

公钥认证有时会有点烦人。授权密钥文件的默认位置是 ~/.ssh/authorized_keys,密钥必须采用单行格式(所有内容都在一行上,对我来说,如果它采用多行格式,那么你几乎可以放弃让它工作的所有希望)。

另外,这是一个愚蠢的想法,但您可以确保位置 .ssh/authorized_keys 被设置为公钥默认位置的主值。

还可以检查服务器上的日志文件,看看是否有任何有用的信息。

相关内容