伺服器上經過rsa演算法生成的私鑰。與公鑰是一對的金鑰對,用於連線其他伺服器用。
伺服器上經過rsa演算法生成的公鑰。與私鑰是一對的金鑰對,用於連線其他伺服器用。
將主機a的id_rsa.pub內容copy到b主機的authorized_keys檔案中,這樣a主機就能不通過密碼連線到b主機。
實現真正無密碼連線,即為授權檔案,當把master的公鑰新增到authorized_keys檔案中後,下次連線直接輸入ssh master即可,不需要再次輸入密碼。(我們本地可以自動生成公鑰,將公鑰輸入到該檔案中,本地就可無密碼連線到該伺服器,分布式集群時也會用到。)
1.單向
(1)登入a機器,輸入ssh-keygen -t [rsa|dsa],將會生成金鑰檔案和私鑰檔案 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
(2)將 .pub 檔案複製到b機器的 .ssh 目錄, 並 cat id_dsa.pub >> ~/.ssh/authorized_keys
這樣a就能不用密碼就連線到b了。
2.雙向
(1)登入a、b主機,輸入ssh-keygen -t rsa,全部回車,採用預設值。
(2)將~/.ssh目錄下生成的公鑰分別寫入到對方主機的authorized_keys中。
這樣a、b之間就可以不通過密碼連線對方主機。
ssh會把你每個你訪問過計算機的公鑰(public key)都記錄在~/.ssh/known_hosts。當下次訪問相同計算機時,openssh會核對公鑰。如果公鑰不同,openssh會發出警告, 避免你受到dns hijack之類的攻擊。(摘自他人的一些理解,後續會更行)
開始可能沒有config檔案,我們需要自己新建乙個config檔案。在使用ssh連線伺服器時,經常要輸入一些不同的主機位址和密碼,使用config檔案可以很好的解決這個問題,也就是說我們能夠通過config檔案能夠實現免密登入。
配置內容:
host:服務名【可以隨意取】
hostname:linux伺服器ip/主機名/網域名稱
user:使用者名稱
port:埠號預設為22
注意:
(1)若hostname中我們輸入的是主機名和網域名稱,那我們可能需要在/etc/hosts檔案下配置ip和主機名或網域名稱的對映。
(2)若我們在對應伺服器中的authorized_keys檔案都配置了金鑰,那我們這裡也不用配置user和port兩個配置項。
附上ssl原理**進行對比分析:
這裡也貼上我的另一篇文章:
《xshell生成金鑰對驗證連線linux系統》
openssh 詳解
linux目錄下各資料夾作用
作為乙個程式設計師,我們難免會接觸到linux系統,特別是後台程式設計師,因為現在專案的部署環境基本都是在linux系統上進行的,所以了解linux系統是十分重要的,雖然我接觸了linux系統已經有一段時間了,但是我基本知識完成了一些部署,並沒有很深入地了解它,所以從現在開始,我們就一起來學習一下l...
Linux根目錄下各目錄功能
bin 存入普通使用者可以使用的命令檔案.目錄 usr bin 也可用來貯存使用者命令。sbin 一般存放非普通使用者使用的命令 有時隔不久普通使用者也可能會用到 目錄 usr sbin中也包括了許多系統命令。etc 系統的配置檔案。sys 檔案系統訪問 linux核心 selinux selinu...
linux 根目錄下各資料夾作用
bin 系統由很多放置可執行檔案的目錄,但是bin目錄比較特殊。因為bin目錄下面放置的是在單使用者維護模式下還能被操作的命令 在 bin下面的被root使用者和一般的使用者所使用,主要有cat chmod chown date mv mkdir cp bash等。boot 這個目錄主要放置開機能夠...