openssh#005#基于WindTerm,使用密钥登录

OpenSSH有两种认证方式:基于口令认证和基于密钥认证。
基于口令的认证相对简单,仅需在SSH客户端登录时输入密码即可。在某些场景,比如登录公司服务器,一般需要我们通过每人的密钥登录。
本文基于我经常使用的SecureCRT和WindTerm两个SSH客户端工具,分别介绍如何使用密钥登录。

0x01 基于WindTerm软件

使用密钥登录系统一般有如下几步:
第一步,制作SSH2公私钥对;
第二步,将公钥放置到服务器的对应账号、对应目录、对应文件中(该文件一般为 /home/{user}/.ssh/authorized_keys);
第三步,配置OpenSSH服务端配置文件,允许通过密钥登录;
第四步,在WindTerm软件中配置密钥登录,引用正确的私钥;

第一步,使用PyTTYGen软件制作SSH2公私钥对。

上文我们直接使用SecureCRT来生成密钥,本文咱们换个软件PuTTYGen来生成公私钥。该软件可以从这里下载:

官方网站:https://www.putty.org/
下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
下载地址:https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.83-installer.msi

PuTTY安装完毕之后,我们按如下步骤开始生成公私钥:

  • 打开PuTTYGen软件,选择“Ed25519”算法,然后点击“Generate”,开始产生公私钥,如下图所示:

  • 公私钥生成完毕之后,如下图所示:

  • 现在有了公私钥,接着将其保存为文件。

首先保存公钥文件,我们拷贝红色框处的公钥内容,然后将该内容保存到:C:\Users{user}.ssh\ed25519\Ed25519.pub

公钥保存文件后如下图所示:

接着保存私钥文件,选择菜单栏“Conversions”,在菜单中选择“Export OpenSSH Key (force new file format)”,保存OpenSSH格式私钥文件:

私钥保存文件后如下图所示:

第二步,将公钥放置到对应的目录和文件中。

假如,我们将以用户名XXX登录系统,那么该公钥应当放入 /home/XXXX/.ssh/authorized_keys 文件中。

本文,演示时我们使用mancode账号登录。首先将上文生成的Ed25519.pub公钥文件,通过WinSCP或者lrzsz工具上传到/home/mancode/.ssh目录内,然后使用如下命令,将公钥追加到authorized_keys文件中。

1
2
3
echo "" | cat - Ed25519.pub >> authorized_keys 
# 或者
echo "" >> authorized_keys && cat Ed25519.pub >> authorized_keys

命令执行过程如下图所示:

第三步,配置OpenSSH服务端的配置文件,允许通过密钥登录。

本步骤,我们需要修改/etc/ssh/sshd_config配置文件,正确设置PubkeyAuthentication和AuthorizedKeysFile配置项。
原配置如下所示:

新配置如下所示:

配置文件修改后,重启服务器或者使用如下命令重启OpenSSH服务端:

1
sudo systemctl restart ssh

第四步,在WindTerm软件中配置密钥登录,引用正确的私钥;

  • 创建连接,如下图所示:

  • 点击设置按钮之后,如下图所示:

  • 点击“单击解锁进行更改”,然后按如下图所示,我们创建一个新的OneKey:

  • 接着配置OneKey,我们选择上述步骤生成的私钥文件,如下图所示:

  • OneKey创建成功之后,回到“新建会话”界面,我们在OnKey下拉框,选择“Ed25519”,如下图所示:

  • 第一次连接该会话时,我们按如下所示,重新选择私钥文件:

按上述步骤执行后,我们可以使用公私钥登录系统了。

0x02 参考资料

https://blog.csdn.net/m0_56305656/article/details/120479116
https://shuyeidc.com/wp/190492.html
https://unix.stackexchange.com/questions/721606/ssh-server-gives-userauth-pubkey-key-type-ssh-rsa-not-in-pubkeyacceptedalgorit
https://www.cnblogs.com/guangdelw/p/18104346
https://blog.csdn.net/qq_43024789/article/details/139317891