每個使用者~目錄下有.ssh 目錄 沒有的話可以自己建,通過公鑰體制可以做到很多個使用者可以登陸linux 系統上的同乙個使用者,而他們都不知道出這個使用者的密碼,並且互相不知道各自的私鑰,(他們持有不同的私鑰,而其各自相對應的公鑰都是這個使用者可以信任的)
假設 我的系統上有乙個使用者名為git ,另外有兩個使用者user1 ,user2 我現在想做到 它們執行
ssh git@localhost 時, git 自己、及user1 不需要輸入密碼,而user2 卻需要輸入密碼
首先,我們想讓git ,user1 可以通過公鑰體制的證而不需要輸入密碼。那麼他們各自應該有相應的公鑰私鑰對。
然後git 使用者把它信任的公鑰加入到信任列表中(包括自已的公鑰及user1的),
生成公鑰私鑰的命令是ssh-keygen
首先給git 使用者生成,以git 使用者登陸。
在/home/git/.ssh/ -lh 目錄下生成了兩個檔案id_rsa ,id_rsa.pub 前者為私鑰,後者為公鑰,私鑰自己保留,公鑰可以任意公開,
然後user1 使用者做同樣的處理在/home/user1/.ssh/目錄 下也會生成這兩個檔案
然後要做的就是把git ,user1 使用者的公鑰匯入到git 使用者我信任列表中,也就是/home/git/.ssh/authorized_keys檔案
首先匯入git 使用者的公鑰。
git .ssh $ cat /home/git/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys
然後是匯入user1 的公鑰,
user1 .ssh $ cp /home/user1/.ssh/id_rsa.pub /tmp/ (user1 使用者執行此命令)
git .ssh $ cat /tmp/id_rsa.pub >>/home/git/.ssh/authorized_keys (git 使用者匯入user1 的公鑰)
這是git 第一次登陸,
這是第二次登陸,不再出現提示。
user1 也應該可以登陸,
而user2 登陸,則會提示輸入密碼,如
注意/home/git/.ssh/id_rsa /home/user1/.ssh/id_rsa 是私鑰,要儲存在自已的~/.ssh 目錄,在登陸ssh 時,ssh會主動用這個檔案與伺服器端進行驗證
公鑰私鑰及ssh公鑰無密碼登入
首先我們需要區分加密和認證這兩個基本概念。加密是將資料資料加密,使得非法使用者即使取得加密過的資料,也無法獲取正確的資料內容,所以資料加密可以保護資料,防止監聽 其重點在於資料的安全性。身份認證是用來判斷某個身份的真實性,確認身份後,系統才可以依不同的身份給予不同的許可權。其重點在於使用者的真實性。...
公鑰私鑰及ssh公鑰無密碼登入
首先我們需要區分加密和認證這兩個基本概念。加密是將資料資料加密,使得非法使用者即使取得加密過的資料,也無法獲取正確的資料內容,所以資料加密可以保護資料,防止監聽 其重點在於資料的安全性。身份認證是用來判斷某個身份的真實性,確認身份後,系統才可以依不同的身份給予不同的許可權。其重點在於使用者的真實性。...
ssh公鑰金鑰無密碼登陸
ssh提供兩種級別的安全驗證。第一種級別 基於密碼的安全驗證 知道帳號和密碼,就可以登入到遠端主機,並且所有傳輸的資料都會被加密。但是,可能會有別的伺服器在冒充真正的伺服器,無法避免被 中間人 攻擊。第二種級別 基於金鑰的安全驗證 需要依靠金鑰,也就是你必須為自己建立一對金鑰,並把公有金鑰放在需要訪...