一、生成公钥/私钥对
生成公钥/私钥对的命令(Windows/Linux):
ssh-keygen -b 4096 -C 张三 -N password -f ./zhangsan-key
参数说明:
-b 4096
:表示密钥的长度,建议 4096 起。-C 张三
:在公钥末尾加上注释,表名这是谁的公钥。-N password
:设置私钥密码。如果想在生成过程中输入密码,可以不用这个参数。-f [file]
: 设置生成的密钥保存文件名,生成成功后会得到[file]
和[file].pub
两个文件。
公钥与私钥
ssh-keygen
命令会生成两个文本文件,一个带 .pub 结尾,内容只有一行,这是公钥;另一个不带 .pub 结尾,内容有很多行,这是私钥。公钥和私钥是绝对唯一的一对,其中公钥内容是可以公开的,而私钥内容则需要小心保管。
二、将公钥/私钥对用于 SSH 登录
- 将公钥添加到服务器的
.authorized_key
文件中。该文件的格式是每行一个公钥。例如你想通过私钥登录 user 用户,则将公钥内容追加到/home/user/.ssh/.authorized_key
文件中。 - 在你的 SSH 客户端上添加你的私钥(通常 SSH 客户端中可以管理多个私钥),并在登录设置中,设置帐号名为 user,登录模式为私钥。
三、保存你的私钥
你的私钥非常重要,请妥善保管。它只是一个文本文件,所以可以保存到你的在线笔记当中。注意不要公开你的私钥文件内容,不要让别人把你的私钥拷贝走了。
万一你的私钥被拷贝走了
但别人是无法直接使用你的私钥的,最后一道防线就是你创建私钥时设置的、用于打开私钥的密码。盗取你私钥的人没有密码就无法打开私钥。但是通过暴力破解,依旧是有可能在一定时间内猜出你的密码来。
因此万一你的私钥被暴露出去了,最安全的应对方式是重新生成公钥/私钥对(当然不能继续用原来的私钥密码!),然后去服务器上用新的公钥替换你现有的公钥。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。