天天看點

linux信任公鑰的配置

一、每個使用者都有自己的家目錄

通路方式是:~/.ssh/id_rsa.pub

使用~就是表示家目錄。

具體家目錄在哪裡,在使用者密碼配置檔案中:/etc/passwd中。第6列的值就是。

可以使用~通路家目錄。也可以直接輸入絕對路徑來通路:/home/git/。

每個使用者都有一個自己信任清單檔案,配置在:~/.ssh/authorized_keys

裡面放的就是每個使用者信任哪些公鑰。

a機器》》通過ssh連接配接》b機器的linux使用者。

使用某個使用者連接配接到b機器,那麼,就要把公鑰加到b機器上,此使用者的信任清單(~/.ssh/authorized_keys )中去。記住是此使用者的信任清單中去。

二、信任清單中的公鑰是一行一個公鑰

~/.ssh/authorized_keys檔案中,公鑰之間,必須要有換行,一行一個公鑰,沒有換行,會當成一個公鑰。

如下方式是錯誤的:

思考,怎麼對每一個公鑰值添加注釋呢。比如想知道這個公鑰到底是給誰使用者。不然這麼長,以後要删除的時候,怎麼确定要删除哪個公鑰。隻能靠注釋了。

此檔案中空行和以'#'開頭的行将被當作注釋忽略。

三、遠端機器目錄和檔案的權限要設定對

之是以沒生效,要保證,是因為權限設定不對。

配置使用者的公鑰登陸時,配置完authorized_keys居然一直不生效,于是google之,發現原來是因為.ssh目錄和下面檔案的權限問題導緻的,因為目錄的權限已經超過了sshd的要求權限。

如果希望ssh公鑰生效需滿足至少下面兩個條件:

1).ssh目錄的權限必須是700 。目錄要可以讀寫執行。其他使用者都沒有任何權限,因為這個目錄是這個使用者專有使用的。

2) .ssh/authorized_keys檔案權限必須是600。思考:隻有自己才可以讀寫(不需要執行),是以第一個值是6。其他使用者都沒任何權限,是以是00

整個ssh軟體已經限制死了,必須是上面這樣的權限才行,多一點都不能通過。比如設定authorized_keys檔案的權限是660,那也通不過。

四、公鑰的生成方式

ssh-keygen -t rsa -C “注釋說明,一般是填寫郵箱”

最後得到了兩個檔案,在~/.ssh/目錄裡:id_rsa和id_rsa.pub。

私鑰檔案是:~/.ssh/id_rsa檔案中。公鑰檔案是,id_rsa.pub。

看到網上,有人直接使用如下指令添加公鑰到信任檔案清單中去:

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

加入進去的公鑰,會自動換行?

實際上就是一行一條資料。加到末尾,其實就是新的一行?

五、如何進行ssh登陸

ssh 使用者名@ip

注:這個使用者名,指的是遠端機器上的linux使用者名。表示說,用這個使用者名,去登陸到遠端機器上去。假設這個使用者名是為git_remote。

1、既然是使用這個使用者名去登陸遠端機器。那麼使用的就是遠端機器上,git_remote使用者的信任公鑰檔案。

遠端機器上這個檔案,位置在“git_remote使用者的家目錄/.ssh/authorized_keys"。

2、要把客戶機上,目前linux賬号的公鑰值,添加到遠端機器“git_remote使用者家目錄/.ssh/authorized_keys"中去。這樣才能信任通過驗證。

怎麼确定目前linux使用者,假設是使用git使用者在執行ssh指令,那麼就是git使用者。

客戶機,目前linux的公鑰檔案,在"git使用者的家目錄/.ssh/id_dsa.pub"檔案中。

繼續閱讀