ssh-keygen命令: 生成SSH密钥对

近来查看Digital Ocean的Droplet登陆日志,发现用作梯子节点的Droplet经常受到来自江苏连云港某IP的SSH密码穷举攻击。

于是博主关闭了该Droplet的SSH密码登录,改用密钥对登录,以杜绝穷举攻击的可能。

使用密钥对登陆,需要创建一个新的SSH密钥对(包含公钥和私钥,公钥提供给VPS服务商,私钥用于登录),我们用Linux系统自带的ssh-keygen命令来生成这个密钥对。

/root/.ssh/目录用来存储Linux系统生成的SSH密钥对,我们首先检查一下,该目录是否为空。

$ cd ~/.ssh
$ ls

若该目录里已经有(filename).pub(filename)这样的同名文件对,则代表已经有生成好的秘钥对。如果不知道已经存在的密钥对的用途,请不要随意覆盖或删除。

我们现在用ssh-keygen命令创建新的密钥对:

$ ssh-keygen

输出如下:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

注意,此处不要覆盖已经存在的密钥对,我们将新生成密钥对命名为test

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/test

然后提示是否要给公钥设置密码,如果不需要密码,留空即可:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

确认完毕后,会生成密钥对,并给出公钥的SHA256指纹:

Your identification has been saved in /root/.ssh/test.
Your public key has been saved in /root/.ssh/test.pub.
The key fingerprint is:
SHA256:HUN5j/NqUt1A18lLr1jVPf/KIIcTSdk/5KOjJBwJF0M root@shadow-in-singapore
The key's randomart image is:
+---[RSA 2048]----+
| .E..+ . =|
| . .o+ o o=*|
| o ooo B.o=|
| o.ooo O.o|
| .S..o B *.|
| o = B + o|
| o * = . |
| o o o |
| o |
+----[SHA256]-----+

现在再检查一下/root/.ssh/目录:

$ cd ~/.ssh
$ ls

输出如下,可以看到我们刚才生成的test密钥对已经在目录里了(test.pub是公钥,test是私钥):

authorized_keys test test.pub

cat命令打印出公钥test.pub的内容:

$ cat test.pub

输出如下,复制公钥内容提供给VPS服务商即可:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCt35H/CTdcJf38j/
xbljWv+TLYS6qpbYm79MDuHtwtjduskzerm4lT6apqlMWS2MOibGE/
pKzIEQRtn7Poi0swXDtqgBTFaji98mI8J918PWkrNuyYZfSascriu8
nXJAxsUX8EcZPkTghzaVBmPK0tHXvX94rxyhPJIbj9eMjeQsb6fsti
kopS2Xt6kM7wCquDTjJrcPa6RrYrPTnpXtWf7K92Yd+yNKFeV4zf9+
UAU/pGo6U4rf7O5sxtzVI08i2Nsbgnm/Jr3rtn/lvAX8M56V1py9L5
76rqpSkmrjyhIC1ssWEUB2Iyelu+B3dwPjFT87hZzog+8Ahu/Oh9Em
oF root@shadow-in-singapore

同理,用cat命令打印出test私钥的内容:

$ cat test

将私钥内容保存在本地,另存为test.pem私钥文件。

在使用SSH客户端登陆该Droplet时,指定该私钥文件为秘钥即可。

若使用Termius:File - Preference - Keychain中添加新的Key,将私钥内容复制到Private Key区块,登陆时指定该Key即可。

若使用Putty:则需要用PuttyGen工具将test.pem私钥文件转换为test.ppk,登陆时指定转换过的新私钥即可。

 

发表评论