使用公钥通过 SSH 连接到 Linux

使用公钥通过 SSH 连接到 Linux

我有一个 Linux 机器的公钥。现在我想使用这个公钥通过 SSH 连接到这台 Linux 机器。

我应该如何使用命令提示符从我的 Windows10 机器通过 SSH 连接到这台 Linux 机器?

答案1

这种方式行不通。民众键的命名是有原因的 - 你需要私钥连接。

它是不可能的连接仅限公众钥匙。

您应该有两个密钥组成密钥对(例如 ED25519):

  • id_ed25519
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW[...]
-----END OPENSSH PRIVATE KEY-----
  • id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG52XtjUkLe5oKTlF5JcOXPV+xM3OeHGDn4KheTm7Gkl user@host

您需要一个内容为“PRIVATE KEY”的文件。

建立连接:

ssh -i id_ed25519 user@host

或者,如果您使用油灰,您可能有一个.ppk 文件 - 它也包含私钥。

这是一个关联帮助您使用 PuTTY 和 SSH 密钥。甚至可以将 OpenSSH 生成的密钥导入到PuTTY *.ppk 文件

答案2

您必须创建密钥对,最简单的方法是使用 PuTTY。关注@fuero 的链接。

然后在 Linux 实例上创建一个用户:

useradd -m <username>

代替<用户名>使用您想要的用户名

在您的用户文件夹中创建一个目录:

cd ~username
mkdir .ssh

将公钥复制到名为“authorized_keys”的新文件中:

echo 'ssh-rsa [...] user@host' >> ~username/.ssh/authorized_keys

(你把之前用puTTY生成的公钥内容以OpenSSH格式粘贴进去)

更改文件夹和文件的权限:

chown -R username:username /home/username/.ssh
chmod -R u=rwX,go= /home/username/.ssh

如果你碰巧有一个启用了 SELinux 的系统,那么

restorecon -R /home/usernmae

最后检查输出看看是否一切正常:

grep  PubkeyAuthentication /etc/ssh/sshd_config

输出应为:PubkeyAuthentication yes

相关内容