刚刚开始接触VPS,觉得每次通过账户密码的方式很麻烦。在各类文章浏览中发现有key这样的登陆方式。奈何很多人都是把命令一丢,也不作解释。洋洋洒洒丢一些代码出来好像很高深的样子,让人看的不明所以不说,如果直接照搬,在日后维护管理也会非常不便。
在写教程这一点上,发现喜欢写博客的日本人更加详细,都会附上说明。
转自SSH Key 生成 for Mac @marimon - Qiita,截选并自行翻译。
とりあえず何を使えばって場合はこれで
首先看一下最基础的命令
ssh-keygen -b 4096 -t rsa
▼オプション補足
▼描述补充
-b: 鍵のビット数(設定しない場合は、デフォルトの1024ビット)
-b:密钥的bit数(不写的情况下,默认1024bit)
-t: 鍵の種類(dsa, ecdsa, ed25519, rsa, rsa1)
-t:密钥的种类(dsa,ecdsa,ed22519,rsa,rsa1) 补充:不写的情况下,默认rsa
※そのほかのオプションについては、下記を参考にしてください。
人によっては、-Cオプションでコメントをつける場合もあるようです。
其他的选项可以参考OpenSSH Manual 注:原文附上的为日文版链接,且已失效,在此附上的为英文原版手册。
根据喜好,-c描述可以添加注释 注:看国内的一些文章,会有人附上自己的邮箱。非必要选项。
ssh key生成の手順
ssh key生成顺序
ファイル名で見る公開鍵、秘密鍵の違い
根据文件名分辨公钥,密钥
・id_rsa.pub = 公開鍵(公钥)
・id_rsa = 秘密鍵(私钥)
既存のkeyを確認
确认是否存在已有密钥(key)
输入:
ls -al ~/.ssh
返回:
UserNames-MacBook-Pro:~ UserName$ ls -al ~/.ssh
total 8
drwx------ 3 UserName staff 96 2 7 11:42 .
drwxr-xr-x+ 35 UserName staff 1120 2 23 11:23 ..
-rw-r--r-- 1 UserName staff 209 2 7 11:42 known_hosts
「id_rsa.pub」も「id_rsa」もないので、既存のkeyは無いことが確認できました。
因为没有「id_rsa.pub」和「id_rsa」,所以可知不存在已有的key。
keyの生成
key的生成
オプション設定しない場合の鍵生成
没有添加描述的情况
输入:
ssh-keygen
返回:
UserNames-MacBook-Pro:~ UserName$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/UserName/.ssh/id_rsa): (不指定保存位置的话请按Enter)
Enter passphrase (empty for no passphrase): (输入密码(口令?暗号?此处不知道passphrase的意思和作用,日后弄清楚了再行编辑)无密请留空)
Enter same passphrase again: (确认密码)
Your identification has been saved in /Users/UserName/.ssh/id_rsa.
Your public key has been saved in /Users/UserName/.ssh/id_rsa.pub.
The key fingerprint is:
(省略)
The key's randomart image is:
(省略)
+----[SHA256]-----+
UserNames-MacBook-Pro:~ UserName$ ls -al ~/.ssh
total 24
drwx------ 5 UserName staff 160 2 27 12:03 .
drwxr-xr-x+ 35 UserName staff 1120 2 23 11:23 ..
-rw------- 1 UserName staff 1766 2 27 12:03 id_rsa
-rw-r--r-- 1 UserName staff 418 2 27 12:03 id_rsa.pub
-rw-r--r-- 1 UserName staff 209 2 7 11:42 known_hosts
「id_rsa.pub」も「id_rsa」のどちらも生成されてますね。
「id_rsa.pub」和「id_rsa」都生成好了。
オプション設定しない場合の暗号度合い
没有添加描述的情况下确认加密程度(查看密钥文件)
输入:
ssh-keygen -l -f ~/.ssh/id_rsa.pub
返回:
UserNames-MacBook-Pro:~ UserName$ ssh-keygen -l -f ~/.ssh/id_rsa.pub
2048 SHA256:(省略) (RSA)
通常、2048あれば十分と言われていますので、あくまでも確認程度です。(暗号方式も確認できますね。)
通常情况下2048位已经足够了,这里仅仅是确认。(在这个示例当中,加密方式也可以确认是RSA。)
オプション設定した場合の鍵生成
在添加了描述的情况下生成密钥
运行:
ssh-keygen -b 4096 -t rsa
返回:
UserNames-MacBook-Pro:~ UserName$ ssh-keygen -b 4096 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/UserName/.ssh/id_rsa): (不指定保存位置的话请按Enter)
Enter passphrase (empty for no passphrase): (输入密码)
Enter same passphrase again: (输入密码)
Your identification has been saved in /Users/UserName/.ssh/id_rsa.
Your public key has been saved in /Users/UserName/.ssh/id_rsa.pub.
The key fingerprint is:
(省略)
The key's randomart image is:
(省略)
UserNames-MacBook-Pro:~ UserName$ ls -al ~/.ssh
total 24
drwx------ 5 UserName staff 160 2 27 12:14 .
drwxr-xr-x+ 35 UserName staff 1120 2 23 11:23 ..
-rw------- 1 UserName staff 3326 2 27 12:14 id_rsa
-rw-r--r-- 1 UserName staff 762 2 27 12:14 id_rsa.pub
-rw-r--r-- 1 UserName staff 209 2 7 11:42 known_hosts
「id_rsa.pub」も「id_rsa」のどちらも生成されてますね。
「id_rsa.pub」和「id_rsa」都生成好了。
オプション設定した場合の暗号度合い
在添加了描述的情况下确认加密程度(查看密钥文件)
输入:
ssh-keygen -l -f ~/.ssh/id_rsa.pub
返回:
UserNames-MacBook-Pro:~ UserName$ ssh-keygen -l -f ~/.ssh/id_rsa.pub
4096 SHA256:(省略)(RSA)
オプションで設定した通り、4096ビットで生成されました。
こちらの方が強度がありますね。
根据描述,生成了4096bit的密钥。
有了更深的加密强度。