仅使用服务器的 ssh 私钥连接到 ssh 服务器

仅使用服务器的 ssh 私钥连接到 ssh 服务器

对于 CTF 挑战设计竞赛,我正在寻找一种方法来仅使用服务器的 ssh 私钥来连接到服务器,我尝试了不同的方法让参与者通过使用服务器的 ssh 私钥来连接到服务器,但每次我尝试连接时都会提示我输入密码,非常感谢您帮助我解决这个问题。

我一直使用以下命令连接到 ssh 服务器:

ssh -i server_privatekey @<服务器 ip>

答案1

在服务器上,在 ~/.ssh 文件夹中生成一对密钥,例如 id_rsa 和 id_rsa.pub ,在整个挑战过程中,参与者将从服务器读取 id_rsa 文件,现在我希望他们能够使用此私钥文件通过 ssh 连接到服务器,而无需输入密码

与任何其他 SSH 密钥对的使用一样,公钥(即 id_rsa.pub 的内容)必须被添加到该帐户的服务器~/.ssh/authorized_keys文件中(或者可能是添加到服务器上配置为 AuthorizedKeysFile 的其他文件中)。

也就是说,在这种情况下,不存在“服务器的 ssh 私钥”这样的东西。没关系在哪里密钥已生成 – 在服务器上生成并不会使其变得特殊;它仍然需要以某种方式在authorized_keys文件中列出。

答案2

你可能正在寻找 从私钥创建 SSH 公钥?

接受的答案是这样的:

对 ssh-keygen 使用 -y 选项:

ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub

从'man ssh-keygen'

 -y      This option will read a private OpenSSH format file and print an
         OpenSSH public key to stdout.

使用 -f 选项指定私钥,您的私钥可能是 dsa 而不是 rsa。您的私钥名称可能包含您使用的私钥。新生成的公钥应该与您之前生成的公钥相同。

相关内容