SSH的ssh-keygen命令基本⽤法详解
ssh 公钥认证是ssh认证的⽅式之⼀。通过公钥认证可实现ssh免密码登陆,git的ssh⽅式也是通过公钥进⾏认证的。
在⽤户⽬录的home⽬录下,有⼀个.ssh的⽬录,和当前⽤户ssh配置认证相关的⽂件,⼏乎都在这个⽬录下。
ssh-keygen 可⽤来⽣成ssh公钥认证所需的公钥和私钥⽂件。
使⽤ ssh-keygen 时,请先进⼊到 ~/.ssh ⽬录,不存在的话,请先创建。并且保证 ~/.ssh 以及所有⽗⽬录的权限不能⼤于 711
⽣成的⽂件名和⽂件位置
使⽤ ssh-kengen 会在~/.ssh/⽬录下⽣成两个⽂件,不指定⽂件名和密钥类型的时候,默认⽣成的两个⽂件是:
id_rsa
id_rsa.pub
第⼀个是私钥⽂件,第⼆个是公钥⽂件。
⽣成ssh key的时候,可以通过 -f 选项指定⽣成⽂件的⽂件名,如下:
[huqiu@101 .ssh]$ ssh-keygen -f test  -C "test key"
~~⽂件名  ~~~~ 备注
如果没有指定⽂件名,会询问你输⼊⽂件名:
[huqiu@101 .ssh]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/huqiu/.ssh/id_rsa):
你可以输⼊你想要的⽂件名,这⾥我们输⼊test。
之后,会询问你是否需要输⼊密码。输⼊密码之后,以后每次都要输⼊密码。请根据你的安全需要决定是否需要密码,如果不需要,直接回车:
[huqiu@101 .ssh]$ ssh-keygen -t rsa -f test -C "test key"
Generating public/private rsa key pair.
ssh命令行Enter passphrase (empty for no passphrase):
Enter same passphrase again:
如果⽂件名是test,结果是:
[huqiu@101 .ssh]$ ll test*
-rw------- 1 huqiu huqiu 1675 Sep 15 13:24 test
-rw-r--r-- 1 huqiu huqiu 390 Sep 15 13:24 test.pub
上⾯⽣成的命令中,-C选项是公钥⽂件中的备注:
[huqiu@101 .ssh]$ cat test.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAlgjiMw7AskxbvpQY9rmZPQxQBzh9laxFvbaini2EgmQkNsXBA9WJOXn2YBJauoiVsdUKBWA97avjsobrTxsCYvFr1yQQvTfTlbqlqGNIhQc/3HjTl2pIkClpDWvBrRN+jpyESS4MNbfOL1qjT4c/QhGvj6U6HrN6kUyn58oyyJpTzO E+9IJPQaqqeqCGzrJ6G/XO7om1v9YLLG/H/ZN2tQ== test key
~~~~备注
为了让私钥⽂件和公钥⽂件能够在认证中起作⽤,请确保权限正确。
对于.ssh 以及⽗⽂件夹,当前⽤户⼀定要有执⾏权限,其他⽤户最多只能有执⾏权限。
对于公钥和私钥⽂件也是: 当前⽤户⼀定要有执⾏权限,其他⽤户最多只能有执⾏权限。
以上既是SSH的ssh-keygen命令基本⽤法希望对⼤家有⽤,更多关于ssh-keygen⽤法的⽂章请查看以下相关⽂章