Centos7通過SSH使用密鑰如何實現(xiàn)免密登錄
概述
- Public Key認證的主要魅力在于認證時承諾不必提供密碼就能夠同遠程系統(tǒng)建立連接。
- Public Key認證的基礎在于一對密鑰,public key和private key,public key對數(shù)據(jù)進行加密而且只能用于加密,private key 只能對所匹配的public key加密過的數(shù)據(jù)進行解密。
- 我們把public key放在遠程系統(tǒng)合適的位置,然后從本地開始進行ssh連接。
- 此時,遠程的sshd會產(chǎn)生一個隨機數(shù)并用我們產(chǎn)生的public key進行加密后發(fā)給本地,本地會用private key進行解密并把這個隨機數(shù)發(fā)回給遠程系統(tǒng)。
- 最后,遠程系統(tǒng)的sshd會得出結論我們擁有匹配的private key允許我們登錄。
一、serverA 免密登錄 serverB 原理
- 首先在 serverA 上生成一對秘鑰(ssh-keygen)
- 將公鑰拷貝到 serverB,重命名 authorized_keys
- serverA 向 serverB 發(fā)送一個連接請求,信息包括用戶名、ip
- serverB 接到請求,會從 authorized_keys 中查找,是否有相同的用戶名、ip,如果有 serverB 會隨機生成一個字符串
- 然后使用使用公鑰進行加密,再發(fā)送個 serverA
- serverA 接到 serverB 發(fā)來的信息后,會使用私鑰進行解密,然后將解密后的字符串發(fā)送給 serverB
- serverB 接到 serverA 發(fā)來的信息后,會給先前生成的字符串進行比對,如果一直,則允許免密登錄
二、Centos7 默認安裝了 ssh服務
啟動 ssh 服務
# 查看 ssh 狀態(tài) systemctl status sshd # 啟動 ssh systemctl start sshd # 停止 ssh systemctl stop sshd
三、serverA 生成秘鑰
遇到提示直接敲回車即可
CentOS7 默認使用RSA加密算法生成密鑰對,保存在~/.ssh目錄下的id_rsa(私鑰)和id_rsa.pub(公鑰)。
也可以使用“-t DSA”參數(shù)指定為DSA算法,對應文件為id_dsa和id_dsa.pub,密鑰對生成過程會提示輸入私鑰加密密碼,可以直接回車不使用密碼保護。
[root@localhost ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/gGrlDJN5euMS5aai5feBkEI/0WjEnzPzx1xGtdkKG4 root@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ |.o.. o +o | | .o.oo . + +.. | | oo.o. .. B | | o..oo E | | ...oSo . | | .o +o+. | | ooB + . | | .oX.= . . | | .o=o=.o . | +----[SHA256]-----+ [root@localhost ~]# ls ~/.ssh/ id_rsa id_rsa.pub known_hosts [root@localhost ~]#
四、解決找不到 .ssh 目錄
如果在上面生成秘鑰后,執(zhí)行 cd ~/.ssh 找不到 .ssh 目錄,是因為沒有使用 ssh 登錄過,使用 ssh 登錄一下即可生成 .ssh 目錄,之后再重新執(zhí)行 ssh-keygen 生成秘鑰即可
[root@localhost ~]# ssh localhost The authenticity of host 'localhost (::1)' can't be established. ECDSA key fingerprint is SHA256:DYd7538oOsqpIIDTs01C3G4S6PRE7msA91yUgk9Dzxk. ECDSA key fingerprint is MD5:88:80:21:03:b2:52:6b:06:ff:c7:3b:d5:2d:47:c9:ad. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. root@localhost's password: Last login: Fri Oct 26 16:15:57 2018 from localhost [root@localhost ~]# ls ~/.ssh/ known_hosts [root@localhost ~]# exit 登出 Connection to localhost closed. [root@localhost ~]#
五、移動 id_rsa.pub 文件
# 將 serverA ~/.ssh目錄中的 id_rsa.pub 這個文件拷貝到你要登錄的 serverB 的~/.ssh目錄中 scp ~/.ssh/id_rsa.pub 192.168.0.101:~/.ssh/ # 然后在 serverB 運行以下命令來將公鑰導入到~/.ssh/authorized_keys這個文件中 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 另外要注意請務必要將服務器上 ~/.ssh權限設置為700 ~/.ssh/authorized_keys的權限設置為600 # 這是linux的安全要求,如果權限不對,自動登錄將不會生效
六、驗證免密登錄
ssh 192.168.101
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
VMware 10 中為CentOS 7添加多網(wǎng)卡并重命名
這篇文章主要介紹了VMware 10 中為CentOS 7添加多網(wǎng)卡并重命名的相關資料,需要的朋友可以參考下2017-01-01解決VMWare安裝Mac系統(tǒng)后無法全屏顯示的問題
這篇文章主要介紹了VMWare安裝Mac系統(tǒng)后無法全屏顯示的問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04vmware虛擬機怎么克隆 VMware11.0.0虛擬機克隆
vmware虛擬機怎么克???這篇文章主要為大家詳細介紹了vmware虛擬機的克隆方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06VMware虛擬機安裝Fedora 27 Workstation正式版(圖文)
這篇文章主要介紹了VMware虛擬機安裝Fedora 27 Workstation正式版(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03VMware15虛擬機橋接模式無法上網(wǎng)問題的解決
這篇文章主要介紹了VMware15虛擬機橋接模式無法上網(wǎng)問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05