SSH 免密碼登入

2021-06-28 21:05:44 字數 2184 閱讀 2563

本文基於實際linux管理工作,例項講解工作中使用ssh證書登入的實際流程,講解ssh證書登入的配置原理,基於配置原理,解決實際工作中,windows下使用securecrt證書登入的各種問題,以及實現hadoop集群部署要求的無密碼跳轉問題。

ssh有密碼登入和證書登入,初學者都喜歡用密碼登入,甚至是root賬戶登入,密碼是123456。但是在實際工作中,尤其是網際網路公司,基本都 是證書登入的。內網的機器有可能是通過密碼登入的,但在外網的機器,如果是密碼登入,很容易受到攻擊,真正的生產環境中,ssh登入都是證書登入。

1.客戶端生成證書:私鑰和公鑰,然後私鑰放在客戶端,妥當儲存,一般為了安全,訪問有黑客拷貝客戶端的私鑰,客戶端在生成私鑰時,會設定乙個密 碼,以後每次登入ssh伺服器時,客戶端都要輸入密碼解開私鑰(如果工作中,你使用了乙個沒有密碼的私鑰,有一天伺服器被黑了,你是跳到黃河都洗不清)。

2.伺服器新增信用公鑰:把客戶端生成的公鑰,上傳到ssh伺服器,新增到指定的檔案中,這樣,就完成ssh證書登入的配置了。

假設客戶端想通過私鑰要登入其他ssh伺服器,同理,可以把公鑰上傳到其他ssh伺服器。

真實的工作中:員工生成好私鑰和公鑰(千萬要記得設定私鑰密碼),然後把公鑰發給運維人員,運維人員會登記你的公鑰,為你開通一台或者多台伺服器的 許可權,然後員工就可以通過乙個私鑰,登入他有許可權的伺服器做系統維護等工作,所以,員工是有責任保護他的私鑰的,如果被別人惡意拷貝,你又沒有設定私鑰密 碼,那麼,伺服器就全完了,員工也可以放長假了。

在客戶端終端執行命令

ssh-keygen -t rsa
rsa是一種密碼演算法,還有一種是dsa,證書登入常用的是rsa。

假設使用者是blue,執行 ssh-keygen 時,才會在我的home目錄底下的 .ssh/ 這個目錄裡面產生所需要的兩把 keys ,分別是私鑰 (id_rsa) 與公鑰 (id_rsa.pub)。

另外就是私鑰的密碼了,如果不是測試,不是要求無密碼ssh,那麼對於passphrase,不能輸入空(直接回車),要妥當想乙個有特殊字元的密碼。

ssh伺服器配置如下:

vim /etc/ssh/sshd_config

#禁用root賬戶登入,非必要,但為了安全性,請配置

permitrootlogin no

#是否讓 sshd 去檢查使用者家目錄或相關檔案的許可權資料,

#這是為了擔心使用者將某些重要檔案的許可權設錯,可能會導致一些問題所致。

#例如使用者的 ~.ssh/ 許可權設錯時,某些特殊情況下會不許使用者登入

strictmodes no

#是否允許使用者自行使用成對的金鑰系統進行登入行為,僅針對 version 2。

#至於自製的公鑰資料就放置於使用者家目錄下的 .ssh/authorized_keys 內

rsaauthentication yes

pubkeyauthentication yes

authorizedkeysfile %h/.ssh/authorized_keys

#有了證書登入了,就禁用密碼登入吧,安全要緊

passwordauthentication no

配置好ssh伺服器的配置了,那麼我們就要把客戶端的公鑰上傳到伺服器端,然後把客戶端的公鑰新增到authorized_keys

在客戶端執行命令

scp ~/.ssh/id_rsa.pub blue@:~
在服務端執行命令

cat  id_rsa.pub >> ~/.ssh/authorized_keys
如果有修改配置/etc/ssh/sshd_config,需要重啟ssh伺服器

/etc/init.d/ssh restart
ssh命令

ssh -i /blue/.ssh/id_rsa blue@
scp命令

scp -i /blue/.ssh/id_rsa filename blue@:/blue
每次敲命令,都要指定私鑰,是乙個很繁瑣的事情,所以我們可以把私鑰的路徑加入ssh客戶端的預設配置裡

修改/etc/ssh/ssh_config

#

其實預設id_rsa就已經加入私鑰的路徑了,這裡只是示例而已

identityfile ~/.ssh/id_rsa

#如果有其他的私鑰,還要再加入其他私鑰的路徑

identityfile ~/.ssh/blue_rsa

ssh 免密碼登入

ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh keygen t rs...

ssh 免密碼登入

ssh 免密碼登入 ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh k...

ssh免密碼登入

實現原理 主機a 產生公鑰和金鑰,將主機a的公鑰傳送到主機b 主機b 接收主機a傳送的公鑰 主機a ssh請求登入到主機b 主機b 傳送給主機a一串字元 主機a 收到主機b傳送的字元,使用金鑰進行加密,並傳送回到主機b 主機b 接收到主機a使用金鑰加密後的字元,使用主機a的公鑰執行一定演算法進行對比...