進入到home目錄(如果沒有.ssh目錄,則使用ssh命令連接一次其他主機就會生成)
cd ~/.ssh
生成公鑰和私鑰對:
ssh-keygen -t rsa
然后敲(三個回車),就會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰)
示例:
創建一個 SSH key
$ ssh-keygen -t rsa -C "your_email@example.com"
代碼參數含義:
-t 指定密鑰類型,默認是 rsa ,可以省略。
-C 設置注釋文字。
-f 指定密鑰文件存儲文件名。
以上代碼省略了 -f 參數,因此,運行上面那條命令后會讓你輸入一個文件名,用於保存剛才生成的 SSH key 代碼,如:
Generating public/private rsa key pair. # Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
當然,你也可以不輸入文件名,使用默認文件名(推薦),那么就會生成 id_rsa 和 id_rsa.pub 兩個秘鑰文件。
接着又會提示你輸入兩次密碼(該密碼是你push文件的時候要輸入的密碼),
當然,你也可以不輸入密碼,直接按回車。那么push的時候就不需要輸入密碼,如:
Enter passphrase (empty for no passphrase): # Enter same passphrase again:
接下來,就會顯示如下代碼提示,如:
Your identification has been saved in /c/Users/you/.ssh/id_rsa. # Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. # The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
當你看到上面這段代碼的收,那就說明,你的 SSH key 已經創建成功。
將公鑰拷貝到要免密登錄的目標機器和自己機器
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.102
ssh文件夾下的文件功能解釋
(1)~/.ssh/known_hosts :記錄ssh訪問過計算機的公鑰(public key)
(2)id_rsa :生成的私鑰
(3)id_rsa.pub :生成的公鑰
(4)authorized_keys :存放授權過得無秘登錄服務器公鑰
問題記錄:
linux root 目錄下沒有.ssh目錄
# ssh localhost
說明: .ssh 是記錄密碼信息的文件夾,如果沒有登錄過root的話,就沒有 .ssh 文件夾,因此登錄 localhost ,並輸入密碼就會生成了。