最新SSH自動登錄方案(RSA)

一. 前言

    直接使用ssh連接到服務器時,需要手動輸入密碼。如果能夠不用手動輸入密碼,且自動登錄到SSH服務器的話,那就爽了。
    經過一晚上的研究,終於搞定了。(原因在於舊的配置方式已不能正確使用了)
    在進行配置前,先假定ssh客戶端爲ssh-client,ssh服務器爲ssh-server(運行ssh服務的一邊)。

二. 配置方法

    1. 在ssh-client一邊使用ssh-keygen生成一對rsa key
       $ssh-keygen -t rsa
  Generating public/private rsa key pair.
  Enter file in which to save the key (/home/abee/.ssh/id_rsa): <回車>
  Enter passphrase (empty for no passphrase): <回車>
  Enter same passphrase again: <回車>
       執行過程中連續回車即可,成功生成key後。private key 保存在~/.ssh/id_rsa,而public key保存在~/.ssh/id_rsa.pub

    2. 在ssh-client一邊使用ssh-add將剛生成的private key加入到ssh agent中(舊配置方式沒有這步喲)
       $ssh-add ~/.ssh/id_rsa
       Identity added: id_rsa (id_rsa)

    3. 將上述的public key(id_rsa.pub)的內容附加到ssh-server端的.ssh/authorized_keys中
       $cat ~/.ssh/id_rsa.pub | ssh username@ssh-server "cat - >> authorized_keys"

    4. 此時,配置完成啦。當再次使用ssh username@ssh-server登錄時,不再使用密碼啦。


三. 重啓ssh-client

    重啓ssh-client後,需要重新使用ssh-add將上面的private key加入到ssh-agent中。因爲ssh-agent重啓後,其沒有保留上次記錄的private key,因此需要重新使用ssh-add將private key加入。
    經過測試,對同一個private key進行多次ssh-add是沒有問題的,總體感覺ssh-add或者ssh-agent會過濾重複的private key。
    爲了實現一次配置,重複使用。可以考慮將ssh-add的執行放到~/.profile下,每次重新登錄X或者Console後,系統就會自動從~/.profile中的ssh-add命令將private key加到ssh-agent中。
    $echo "ssh-add ~/.ssh/id_rsa" >> ~/.profile
    這個方法在ubuntu10.04測試通過。

四. 單個ssh-client與多個ssh-server

    經過測試,在不止一個ssh-server的情況下,每一個ssh-server可以共用上述的publice key。而ssh-client僅用一個pirvate key.


五. 特別注意

    1. 上述使用RSA方式進行ssh身份驗證,具體可以查看man ssh。從上面兩種環境可以看出,ssh-keygen產生的private key是關鍵文件,可以說這個就是ssh的登錄密碼。因此在ssh-client一側,該文件的權限一般設置爲600
    2. 在ssh-server側存儲public key的authorized_keys文件的權限至少是400,即最少也要用戶可讀。另外由於該public key可以計算出private key,且一般還會寫入其他public key,所以其權限一般設置爲700。
    3. 一般情況下,對於多個ssh-server,最好的方案是針對每一個ssh-server使用唯一一對RSA key。這樣可以防止一個private key泄漏後,只有一個ssh-server的ssh安全受影響,其他ssh-server不受影響(因爲使用不同的RSA key)。


六. 與舊配置的區別

    1. .ssh/目錄在ssh-server/ssh-client端都沒有權限要求,所以默認的755即可。
    2. 上述配置均不需使用root權限,也不需要配置/etc/ssh/sshd_config(默認即可),更不需要重啓ssh服務器。

最後,希望對大家有用哈。大笑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章