
以下針對的是ssh2,而不是ssh,也不是OpenSSH。配置分兩部分:一是對登入機的配置,二是對被登入機的配置,其中登入機為用戶端,被登入機為服務端,也就是解決用戶端到服務端的無密碼登入問題。下述涉及到的指令,可以直接拷貝到Linux終端上執行,已全部驗證通過,操作環境為SuSE 10.1。
如何确定是OpenSSH還是SSH2?執行指令“ssh -V”,通過它的輸出,即可确定:
SSH2
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on
OpenSSH
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
第一步,修改所有被登入機上的sshd配置檔案/etc/ssh2/sshd2_config:
1) 将PermitRootLogin值設定為yes,也就是取掉前面的注釋号#
2) 将AllowedAuthentications值設定為publickey,password,也就是取掉前面的注釋号#
3) 重新開機sshd服務:service ssh2 restart
第二步,在所有登入機上,執行以下步驟:
1) 進入到.ssh2目錄:cd ~/.ssh2
2) ssh-keygen2 -t dsa -P''
-P表示密碼,-P''就表示空密碼,也可以不用-P參數,但這樣就要敲三次Enter鍵,用-P''就一次回車。
成功之後,會在使用者的主目錄下生成私鑰檔案id_dsa_2048_a,和公鑰檔案id_dsa_2048_a.pub。
3) 生成identification檔案:echo "IdKey id_dsa_2048_a" >> identification,請注意IdKey後面有一個空格,確定identification檔案内容如下:
# cat identification
IdKey id_dsa_2048_a
第三步,在所有被登入機上,執行以下步驟:
2) 生成或修改authorization檔案:echo "Key id_dsa_2048_a.pub" >> authorization,請注意Key後面有一個空格,確定authorization檔案内容如下:
# cat authorization
Key id_dsa_2048_a.pub
完成上述工作之後,從登入機到被登入機的ssh登入就不需要密碼了。