SSH的免密登入詳細步驟

2021-10-07 14:45:48 字數 1300 閱讀 9476

需求

為了保證一台linux主機的安全,所以我們每個主機登入的時候一般我們都設定賬號密碼登入。但是很多時候為了操作方便,我們都通過設定ssh免密碼登入。

在這裡我對本地機器cloud10和目標機器cloud11、cloud12進行免密登入

大致的三步

1.本地機器生成公私鑰

2.上傳公鑰到目標機器

3.測試免密登入

具體操作

1.準備工作

使用root許可權分別修改每台機器的hosts,新增每台機器所對應的ip和主機名(我這裡分布式集群是3臺機器組成的,所以配置3臺,習慣將自己的ip和主機名放在第一行)

sudo vim /etc/hosts

刪除檔案裡內容後新增如下內容

檢視本地機器的隱藏檔案 .ssh

ll -a

2.在本地機器用ssh-keygen 生成乙個公私鑰對

在ssh目錄下進行,輸入三個回車

進入.ssh目錄 cd .ssh

發起公鑰請求 ssh-keygen -t rsa

在.ssh/目錄下,會新生成兩個檔案:id_rsa.pub和 id_rsa

3.上傳公鑰到目標機器

ssh-copy-id [email protected]

ssh-copy-id hduser@cloud12

注意:(@前邊是接受公鑰機器的使用者名稱,後邊是接受放的ip,因為配置了對映所以ip可以用主機名代替)

檢視遠端從節點主機上是否接收到 authorized_keys檔案

這個時候cloud10的公鑰檔案內容會追加寫入到cloud11的 .ssh/authorized_keys

檔案中檢視cloud11下的authorized_keys檔案與cloud10下的id_rsa.pub中內容是一樣的,如下圖所示

重啟 ssh服務命令使其生效:(3臺機器都要重啟)

sudo service sshd restart

另外我們要注意,

.ssh目錄的許可權為700,其下檔案authorized_keys和私鑰的許可權為600。否則會因為許可權問題導致無法免密碼登入。我們可以看到登陸後會有known_hosts檔案生成。

chmod -r 700 .ssh/

sudo chmod 600 .ssh/authorized_keys

4.測試免密登入

使用ip免密登入(使用者名稱相同時,ssh+主機名;如果不同,登入方式就是 ssh+使用者名稱@ip位址)

ssh cloud10

ssh cloud11

ssh cloud12

退出免密登入

exit

SSH免密登入

a為本地主機 b為遠端主機 生成公鑰私鑰對 ssh keygen t rsa登入遠端機器 ssh root 然後輸入密碼 將.ssh的許可權設為700 mkdir ssh 如果資料夾已存在,跳過 chmod 700 ssh將本地生成的rsa公鑰複製到遠端機器 scp ssh id rsa.pub r...

SSH免密登入

當我們在配置多台計算,使之可以相互使用無密碼登入 ssh,之前都是一台一台的配置,現在一台a上新增b,然後在另一台b上再次新增a,這樣使得authorized keys中的內容相同,但時並不是完全相同,比如新增順序。如果超過2臺,這種配置就相當複雜了,而且容易出錯。後來,在網上看到了一種簡單的配置,...

SSH免密登入

前提 本地和遠端伺服器都已經安裝了ssh 遠端伺服器ip 192.168.1.145 遠端登入使用者 admin 本地命令 1 ssh keygen t rsa p 一路回車 2 scp ssh id rsa.pub admin 192.168.1.145 home admin ssh 3 按提示輸...