欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

SSH的ssh-keygen命令基本用法详解

程序员文章站 2023-08-26 22:15:02
ssh 公钥认证是ssh认证的方式之一。通过公钥认证可实现ssh免密码登陆,git的ssh方式也是通过公钥进行认证的。 在用户目录的home目录下,有一个.ssh的目录,...

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.
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/qhgvj6u6hrn6kuyn58oyyjptzolg74azelj2led57qvtw1yjxzuamwior0a3bgd25fdoclx3ebux6ya8asloovyfsaqglggrare6fxjlfmh4a/nxaadidyvxu/vr1ybk9p7sfyedgji3jtgipula6vpxuc
e+9ijpqaqqeqcgzrj6g/xo7om1v9yllg/h/zn2tq== test key
                      ~~~~备注

为了让私钥文件和公钥文件能够在认证中起作用,请确保权限正确。

对于.ssh 以及父文件夹,当前用户一定要有执行权限,其他用户最多只能有执行权限。

对于公钥和私钥文件也是: 当前用户一定要有执行权限,其他用户最多只能有执行权限。

以上既是ssh的ssh-keygen命令基本用法希望对大家有用,更多关于ssh-keygen用法的文章请查看以下相关文章