1. 程式人生 > >ssh-keygen和ssh-copy-id實現免密登入遠端主機

ssh-keygen和ssh-copy-id實現免密登入遠端主機

       ssh免密登入在實際工作中有重要的作用,甚至有的應用部署也必須要免密登入遠端主機,例如hadoop環境搭建。

       免密登入,需要先在本機生成公鑰,然後將公鑰拷貝到遠端主機,拷貝的過程,既可以手動(在遠端主機根目錄下建立.ssh目錄,然後將公鑰存入該目錄下authorized_keys檔案中即可),也可以直接命令操作ssh-copy-id,這個操作做完了,即可免密登入遠端主機。

         仔細回想這個過程,先在本機生成公鑰,然後將公鑰複製到遠端主機,接著就可以免密登入遠端主機,這個過程似乎與我們想想的不太一樣,我們可能希望遠端主機免密登入本機。這就好比我要去朋友家,我先將我們家的鑰匙放在朋友家,結果我就可以隨便進入朋友家裡。正常來說,我家鑰匙在朋友家裡,應該是朋友隨便進入我家。通過實驗我們來看是什麼樣的。

這裡假定我們需要在node01上遠端登入node02機器,這樣的話,預設ssh登入,需要輸入node02上root使用者的密碼。如下圖所示:


node02上本身是沒有.ssh目錄的。


一、生成型別rsa免密的公鑰。

#ssh-keygen -t rsa -P ""

遇到提示,一路回車即可。


檢視剛剛生成的公鑰id_rsa.pub


二、將公鑰通過命令ssh-copy-id放入node02機器上。

#ssh-copy-id [email protected]

執行這一步操作,需要輸入node02上root使用者登入的密碼。


執行成功之後,我們在node02上檢視/root/.ssh目錄已經生成,並且多了一個名為authorized_keys的檔案,裡面儲存的正是node01上ssh-keygen生成的id_rsa.pub的內容。


三、遠端登入node02,無需密碼,直接登入成功,如圖所示。


另外:免密登入本機也是可以的,預設是需要密碼的,只需要將id_rsa.pub拷貝一份儲存為authorized_keys。接著ssh登入本機,直接登入成功。


       ssh免密登入的過程我們已經清楚了,現在來說說是怎麼回事,為什麼和我們想象的不一樣。

       ssh-keygen的過程,其實不光生成了id_rsa.pub,同時還生成了id_rsa這個檔案,這個檔案就是私鑰,儲存在本機的。ssh遠端登入的過程,先是客戶端請求遠端主機,遠端主機根據authorized_keys中本機公鑰的內容加密一個請求,返回給客戶端,客戶端然後利用私鑰對這個請求解密,再發送給遠端主機,遠端主機收到了準確的應答,即認為是該客戶端是可信的,因此允許登入。該過程可以通過如下圖所示更直觀。


       遠端主機上的authorized_keys檔案中可以儲存多個公鑰。多個公鑰直接追加在末尾。

       瞭解ssh免密登入的過程,再回過頭來,我們發現其實這種方式和遠端主機的密碼沒有任何關係,我們無需知道密碼,或者密碼隨便更改,我們只要保證遠端主機有我們的公鑰,而我們本地有這麼一對公鑰和私鑰就可以了。

相關推薦

ssh-keygenssh-copy-id實現登入遠端主機

       ssh免密登入在實際工作中有重要的作用,甚至有的應用部署也必須要免密登入遠端主機,例如hadoop環境搭建。       免密登入,需要先在本機生成公鑰,然後將公鑰拷貝到遠端主機,拷貝的過程,既可以手動(在遠端主機根目錄下建立.ssh目錄,然後將公鑰存入該目錄下

【轉】使用ssh-keygenssh-copy-id三步實現SSH無密碼登錄

works message targe auth mes unix use ner not 【原】http://blog.chinaunix.net/uid-26284395-id-2949145.html ssh-keygen 產生公鑰與私鑰對. ssh-copy-id

使用ssh-keygenssh-copy-id三步實現SSH無密碼登入

from  http://blog.chinaunix.net/uid-26284395-id-2949145.html ssh-keygen  產生公鑰與私鑰對. ssh-copy-id 將本機的公鑰複製到遠端機器的authorized_keys檔案中,ssh-copy

mac使用ssh-keygenssh-copy-id三步實現SSH無密碼登入

ssh-keygen :產生公鑰與私鑰對. ssh-copy-id :將本機的公鑰複製到遠端機器的authorized_keys檔案中,ssh-copy-id也能讓你有到遠端機器的home, ~.

mac上使用ssh登入遠端伺服器

轉載自https://cloud.tencent.com/developer/article/1198834 通常的來說,我們會使用 ssh [email protected] -p port這個命令,之後輸入密碼來登入伺服器,才能ssh登入到伺服器進行操作。如果一天需要登入很多遍伺服

ssh登入遠端目標伺服器

ssh免密登入 本地主機 cd ~/.ssh ssh-keygen -t rsa 兩次回車 或者設定密碼 scp id_rsa.pub [email protected]:~/.ss

[Linux]私鑰公鑰對認證身份,實現登入

版權宣告 一、情景 問題描述: 在使用java 或者 直接在linux系統中登入時,會有提示訊息:是否儲存地址資訊,和輸入密碼。 認證身份有“私鑰和公鑰對”“使用者名稱和密碼”完成兩臺主機之間的身

Windows下git實現登入伺服器

windows本機上: 1. ssh-keygen -t rsa -b 4096 -C “[email protected]” (上面的這個命令我也不是太理解,但是這麼是可以的,記得敲3個回車) 執行完之後(預設情況下)就會在C:\Users\T

Ansible-登入主機清單Inventory

  Ansible的指定使用者與密碼登入、免密登入、指定ssh埠以及主機清單Inventory配置 在實際使用中並不需要對ansible配置進行修改,或者說只有需要的時候才修改ansible配置。 新增使用者賬號 說明: 1、 運維人員使用的登入賬號; 2、 所有的業務都放在 /app/ 下「

linux設定ssh登入ssh-copy-id命令

linux系統配置免密碼的方式: 1:ssh-keygen -t rsa ssh-keygen -t dsa 生成金鑰 2:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] # 接下來一路回車到底

利用ssh-copy-id實現SSH無密碼登錄

ssh copy id 第一步: 產生公鑰與私鑰對:[[email protected]]# ssh-keygen -t rsa按照提示輸入完後,會在~/.ssh目錄下生成id_rsa和id_rsa.pub這兩個文件 第二步:用ssh-copy-id將公鑰復制到遠程機器中ssh-copy

Linux設定登入的幾種方法(ssh-copy-id / ansible)

一. ssh-keygen -t rsa 生成公鑰、私鑰 authorized_keys:存放遠端免密登入的公鑰,主要通過這個檔案記錄多臺機器的公鑰 id_rsa : 生成的私鑰檔案 id_rsa.pub : 生成的公鑰檔案 know_hosts : 已知的主

【Git】Git登入,使用ssh-keygen生成多個key分別用於公司的gitlab自己的github倉庫

一、在git bash中執行 ssh-keygen -t rsa -C ‘[email protected]’ -f ~/.ssh/id_rsa_xxx 二、新增配置 在使用者目錄的.ssh目

Hadoop起步之圖解SSH登入原理實現

1. 前言 emmm….最近學習大資料,需要搭建Hadoop框架,當弄好linux系統之後,第一件事就是SSH免密登入的設定。對於SSH,我覺得使用過linux系統的程式設計師應該並不陌生。可是吧,用起來簡單,真讓你說出個所以然,還是件比較困難的事(大佬繞路,此篇文章不屬於你~)。然後,我就好

expect一鍵實現集群ssh登入

scriptexpect具有非交互式功能yum -y install expectmkpasswd -l 20 #<==生成隨機字符串,-l參數指定生成字符串的長度非交互密鑰分發添加用戶(所有機器)useradd jiege1echo 123456|passwd --stdin jiege1id j

SSH 登入配置遠端登入伺服器

生成SSH私鑰和公鑰 ssh-keygen -t rsa 手動建立一個 authorized_keys檔案 touch ~/.ssh/authorized_keys 公鑰檔案內容複製到authorized_keys檔案裡面 cat ~/.ssh/id_rsa.pub

(一)git生成ssh-key,實現密碼登入github

一 、 切到當前使用者的根目錄,右鍵選擇git bash,設定Git的user name和email: git config --global user.name "這裡換上你的使用者名稱" git config --global user.email "這裡換上你的郵箱"

ssh-keygen配合~/.ssh/config密碼及[email protected]

用過終端登入遠端伺服器或者VPS的童鞋都用過類似的命令:ssh [email protected],輸入密碼後就可以登入遠端伺服器了,但是人總是懶滴,Here,免輸入密碼登入遠端伺服器的方法: 開啟終端,本地生成id_rsa(私鑰),id_rsa.pub(公

基於SSH的使用者名稱密碼驗證登入原理

關於SSH你只需要瞭解這些 SSH即安全外殼協議:專為遠端登入會話和其他網路服務提供安全性的協議,通過使用SSH,你可以把所有傳輸的資料進行加密。 瞭解OpenSSH OpenSSH是SSH的免費開源實現,是使用SSH透過計算機網路加密通訊的實現。它是

linux雙機ssh登入實現

環境:       虛擬機器:virtualBox       linux系統:CentOS 7       目標主機:A機、B機   操作:(以下順序執行)