我有一个 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