ssh-keygen 記錄

實驗環境:騰訊雲服務器

目標:A免密碼登錄B

前提條件:

AB服務器的普通用戶都是test

AB服務器都是CentOS Linux release 7.6.1810 (Core)

 

A服務器

剛開始的想法是爲密鑰創建一個備註或者一個獨特的名字方便識別。於是Google了下面這條命令

ssh-keygen -f id_rsa_ansible -C "ansible Private password"

生成的密鑰如下,主要是結尾的備註。

cat id_rsa_ansible.pub 
ssh-rsa  中間的不重要。 ansible Private password

看密鑰的話是沒問題的,接下來就是在B服務器上手動填入公鑰。或者直接輸入以下命令

ssh-copy-id -i /home/test/.ssh/id_rsa.pub [email protected]

用命令的話會讓你輸入B服務器的test用戶密碼。

但是,當把公鑰copy過去後,不能直接登錄。報錯

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

網上說把/etc/ssh/sshd_config這個文件的PubkeyAuthentication參數取消註釋,但是這個參數是允許root用戶遠程登錄的,所以不管用。

後來又重新生成了id_rsa.pub 密鑰,就是默認的,什麼都不加。

[test@myc-test .ssh]$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Dj1RHIlrVme9ZpwF7tqFaoIZN6f2XaDElkh6jeyPmPY test@myc-test
The key's randomart image is:
+---[RSA 2048]----+
|         ooo ... |
|        ..+ o.. .|
|        .o.o ..+ |
|       .+= = o*. |
|      .oS B Bo+ .|
|       o O * = o |
|        + = = . .|
|        .+ * . . |
|       .o.E o .  |
+----[SHA256]-----+

然後再copy到B服務器就好使,可以實現免密碼登錄。後來就想是不問題出在了生成的公鑰格式上。所以就去掉一個-f的參數。

ssh-keygen -C "ansible Private password"

生成的密鑰名字還是默認的id_rsa.pub,但是公鑰的結尾還是有註釋,然後將這個新的公鑰copy到B服務器上,發現好使。

然後我又測了單加-f參數生成的密鑰,事實證明不行。還是會報Permission denied這個錯誤。

 

當然,很可能是我學藝不精沒有好好的領悟這兩個參數的精髓,所以特地發出來一是做個記錄,二的話也是希望有明白的大哥們不吝賜教。thx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章