一、每個使用者都有自己的家目錄
訪問方式是:~/.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"檔案中。
SFTP信任公鑰配置及JSCH庫
以dsa舉例 ssh keygen t dsa 執行該命令後,在home 使用者名稱 ssh目錄下,會生成id dsa和id dsa.pub兩個檔案 scp id dsa.pub 使用者名稱 服務端ip home 使用者名稱 ssh 此時還需要輸入密碼 登入服務端,進入到 home 使用者名稱 ss...
linux下配置公鑰私鑰
ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。首先以root賬戶登陸為例。1.在a機下生成公鑰 私鑰對。root a ssh...
配置ssh公鑰
ssh keygen t rsa c 你的郵箱 配置git賬戶 git config global user.name xuhaiyan git config global user.email haiyan.xu.vip gmail.com cd ssh cat id rsa.pub 配置ssh公...