ssh 公鑰認證是ssh認證的方式之一。通過公鑰認證可實現(xiàn)ssh免密碼登陸,git的ssh方式也是通過公鑰進行認證的。
在用戶目錄的home目錄下,有一個.ssh的目錄,和當前用戶ssh配置認證相關(guān)的文件,幾乎都在這個目錄下。
ssh-keygen 可用來生成ssh公鑰認證所需的公鑰和私鑰文件。
使用 ssh-keygen 時,請先進入到 ~/.ssh 目錄,不存在的話,請先創(chuàng)建。并且保證 ~/.ssh 以及所有父目錄的權(quán)限不能大于 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。
之后,會詢問你是否需要輸入密碼。輸入密碼之后,以后每次都要輸入密碼。請根據(jù)你的安全需要決定是否需要密碼,如果不需要,直接回車:
[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,結(jié)果是:
[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
~~~~備注
為了讓私鑰文件和公鑰文件能夠在認證中起作用,請確保權(quán)限正確。
對于.ssh 以及父文件夾,當前用戶一定要有執(zhí)行權(quán)限,其他用戶最多只能有執(zhí)行權(quán)限。
對于公鑰和私鑰文件也是: 當前用戶一定要有執(zhí)行權(quán)限,其他用戶最多只能有執(zhí)行權(quán)限。
以上既是SSH的ssh-keygen命令基本用法希望對大家有用,更多關(guān)于ssh-keygen用法的文章請查看以下相關(guān)文章