ssh配置公鑰私鑰登錄服務器


原理

密碼的方式的即時認證的方式 。而公私鑰 是在服務器保存一份已經通過認證的加密串,登錄時通過這個加密串去認證。
公鑰是可以傳播的,私鑰只能在自己的本地

公私鑰的工作原理, 可以參考這篇文章: SSH公鑰登錄(私鑰認證)原理

生成 公私鑰

有機器A,B。現想A通過ssh免密碼登錄到B。

ls -al ~/.ssh

檢測 A主機下是否已經生成過 SSh key , 如果存在 id_rsaid_rsa.pub 的話,說明已經生成過 SSH key 了。可以直接下一步。 否則要先生成。

使用 ssh-keygen 命令 , your-email@example.com 替換為你的郵箱。

> ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.

命令行會提示讓你指定秘鑰的名稱,按回車鍵將 SSH Key 保存到默認文件名即可:

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

如果要更改路徑,這里要輸入絕對路徑,不然就出現在根目錄 / 下了。(一般不要修改,默認路徑最好)

接下來會詢問你為 SSH Key 設置密碼,按回車鍵即可,默認為空密碼:

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

不輸入,直接回車就是空密碼了

這一步的密碼一定要注意 。 設置為空密碼,才能免密碼登錄, 否則就是要密鑰的密碼了。 有較多新手朋友爛在了這一步 。明明設置了密鑰,卻還是要輸入密碼。就是這個原因了。

可以都選擇默認,一路 Enter 鍵即可.
這個時候如果我們再使用:

> ls -al ~/.ssh
id_rsa id_rsa.pub known_hosts

SSH 秘鑰的兩個文件:
id_rsa —— SSH 秘鑰的 私鑰 (Private Key)
id_rsa.pub —— SSH 秘鑰的 公鑰 (Public Key)

B 主機設置公鑰

把A機下的/root/.ssh/id_rsa.pub 復制到B機的 /root/.ssh/authorized_keys文件里,先要在B機上創建好 /root/.ssh 這個目錄。
兩種方式:
一:

ssh-copy-id root@192.168.1.181

二:用scp復制。

[root@A ~]# scp /root/.ssh/id_rsa.pub root@192.168.1.181:/root/.ssh/authorized_keys
root@192.168.1.181's password:
id_rsa.pub                                    100%  223     0.2KB/s   00:00

由於還沒有免密碼登錄的,所以要輸入一次B機的root密碼。
需要特別注意的是:B主機的.ssh文件的所有者要是root,如果不是要改:

chown -R root:root .ssh

同時,B主機的authorized_keys文件,要是600權限的,如果不是,也要改:

chmod 600 authorized_keys

A主機使用公鑰免密登錄B主機的root用戶

[root@A ~]# ssh -l root 192.168.1.181

第一次登錄是時要你輸入yes。

現在A機可以無密碼登錄B機了。

小結:登錄的機子可有私鑰,被登錄的機子要有登錄機子的公鑰。這個公鑰/私鑰對一般在私鑰宿主機產生。上面是用rsa算法的公鑰/私鑰對,當然也可以用dsa(對應的文件是id_dsa,id_dsa.pub)

想讓A,B機無密碼互登錄,那B機以上面同樣的方式配置即可。

參考文章: https://blog.csdn.net/qq_31016531/article/details/78850162


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM