這僅是我對自己經驗的一點積累,若能幫助别人,萬分榮幸,若有錯誤,也請多多指教!
用戶端:
--系統:fedora18
--使用者:kuku
伺服器端:
--系統:RHEL 5.4
--使用者:raffy
登陸方式:使用SSH指令,通過密鑰遠端登陸伺服器。
不涉及:在windows下使用putty,secureCRT等工具遠端登陸(網上已經很多了)。
步驟:
1.在用戶端使用指令生成RSA密鑰(一次性生成公鑰和私鑰):$ ssh-keygen -t rsa
根據提示,指定生成密鑰的目錄
(預設是/home/kuku/.ssh,.ssh是隐藏檔案,用 ll -a 檢視,如果發現自己的預設目錄下沒有.ssh檔案,則應自己建立,否則要通過改sshd_config檔案來修改認證檔案所在 目錄,這裡不讨論了),
并輸入密鑰密碼
(若不希望設定密碼則直接回車,否則密碼至少5位)。
2.生成的密鑰檔案為:id_rsa(私鑰), id_rsa.pub(公鑰),私鑰留在用戶端 /home/kuku/.ssh 目錄下,将公鑰拷貝到伺服器端的 /home/raffy/.ssh 目錄下,我用的方法是 sftp,具體就不說了,用rcp, ftp, u盤拷貝都是一樣的。
3.如過伺服器端該目錄下沒有 authorized_keys 檔案,可以直接将 id_rsa.pub 檔案重命名為 authorized_keys : $ mv id_rsa.pub authorized_keys。
如果已存在,則将 id_rsa.pub 的内容添加到 authorized_keys 檔案的最後一行:$ cat id_rsa.pub >> authorized_keys
用 $ vi authorized_keys 檢查是否已經成功導入内容,如果導入失敗,可能是對檔案的操作權限問題,用 chmod 修改檔案權限,再試。
不出意外的話,就可以在用戶端用 SSH 指令遠端登陸 RHEL 5.4了。
4.可能遇到的問題:
我隻遇到了一個問題:publickey, gssapi-with-mic
由于伺服器端 .ssh 目錄和 authorized_keys 檔案的權限設定不當,我試了以下,若把 .ssh 或 authorized_keys 的權限 設定在 700 或更低,就沒有問題,也就是說隻有
除了所有者以外的任何人不得對他們擁有任何權限。這當然是出于安全和一緻性的考慮,通常建議是 .ssh 檔案的權限為 700 ,authorized_keys 的權限是 600 。
存在用戶端的私鑰如果設定高于700的權限會直接拒絕登陸。
5.伺服器端拒絕 root SSH登陸以及普通使用者密碼登陸:
這項設定需要 root 權限,配置 /etc/ssh 目錄下的 sshd_config 檔案,因為 sshd_config 隻有在權限為 600 時才會生效 (這點很重要!),是以修改完後一定記住檢視
權限是否為 600 ,不是的話需要手動修改。
拒絕 root SSH登陸:PermitRootLogin no
拒絕普通使用者密碼登陸:PasswordAuthentication no
普通使用者密鑰登陸:PubkeyAuthentication yes
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys (這就是前面提到的認證目錄,不過我沒改過)
設定完成後,檢視檔案權限沒問題,重新開機 SSH 服務:$ service sshd stop
$ service sshd start
到此結束。
2014-04-18:前幾天有個朋友告訴我,他們機關(某行)的伺服器設定使用者的home目錄權限過高,為775,導緻用戶端ssh無法連結,改為755就可以了。感覺略吊~
轉載于:https://www.cnblogs.com/kukujiabo/archive/2013/02/20/2919074.html