我向用戶詢問了他們的公共「id_rsa.pub」ssh密鑰,然後我將其放在「/home/theiraccount/.ssh/authorized_keys」中,以便他們可以通過SSH登錄到服務器。我想讓這個過程自動化。完整性檢查SSH公鑰?
有無論如何去理智檢查他們給我的字符串(以編程方式或其他方式)?我想驗證sshd是否可以讀取文本,並且它看起來像一個有效的公鑰(並且沒有被損壞)?
換一種說法,id_rsa.pub
文件的格式是什麼?如果有人在字段中輸入它,我可以在表單處理程序腳本中寫什麼來驗證它是否完整和正確?
下面是一個用Python編寫的用於驗證密鑰的函數的鏈接:https://github.com/jirutka/ssh-ldap-pubkey/blob/master/bin/ssh-ldap-pubkey#L264假設你只是對基本驗證感興趣,算法基本上是:1.分割內容,第一個元素是'kt' =鍵類型,第二個元素是鍵字符串。 2. base 64解碼密鑰字符串3.前四個字節是整數'ktl',對應於key_type字符串的長度4.獲取解碼字符串5的字符4至4 + ktl 5.它應該匹配密鑰類型'kt'。 – 2015-05-20 14:06:39