SSHD驗證方式分為三類:
此方式是一般所常用的。主要是以伺服端的帳號及密碼來驗證。
結果演示。 $ssh [email protected] The authenticity of host '192.168.0.13 (192.168.0.13)' can't be established. RSA key fingerprint is 6f:c6:45:98:8a:ae:bc:c8:fe:30:b4:ba:35:6c:a9:8b.(是192.168.0.13遠端伺服的ssh公鑰拇指紋) Are you sure you want to continue connecting (yes/no)?yes(表用戶端接受192.168.0.13公鑰) Warning: Permanently added '192.168.0.13' (RSA) to the list of known hosts. [email protected]'s password:(此處填入伺服主機上既有的帳號密碼) Last login: Sat Jul 14 15:30:17 2012 from 192.168.0.104 #(若下一次重新登入,就不會問Yes/No,因為用戶端 ~/.ssh/known_hosts,此檔已存有192.168.0.13的公鑰了)
驗證用戶端公鑰的一種身份認證。一開始用戶端把自己的公鑰存放在伺服端。等到下次登入時, 伺服端會比對此ip是否為此公鑰所屬的主機,正確後,用戶端會拿出私鑰來驗證此公鑰。因此也可說是憑證認證。
結果演示。 #ssh [email protected] Enter passphrase for key '/root/.ssh/id_rsa':(此處填入解開私鑰的密碼,來驗證存放在伺服器的公鑰) Last login: Sat Jul 14 15:18:02 2012 from 192.168.0.104 #
此驗證方式原理與第二項一樣,差別在於用戶端的私鑰無加密,因此登入伺服端不必登打密碼即可登入, 用於批次自動化管理非常方便。
結果演示。過程中不必key密碼 $ssh [email protected] Last login: Sat Jul 10 06:54:03 2012 from 192.168.0.104 #
#vim /etc/ssh/sshd_config(另外,在/etc/ssh/內有ssh_config,表客戶端的設定檔)
#vim /etc/ssh/sshd_config Port 22 #ssh 通常是22port,可以改變1024~65535port PermitRootLogin yes #預設為yes改變為no,不允許root登入 PasswordAuthentication yes #預設為yes改變為no,不用主機驗證方式,改採憑證認證方式(憑證認證方式,可以用ssh-copy-id,把公鑰傳到伺服端) AllowUsers user1,user2... #此作法為白名單方式,只允許user1,user2等帳號登入驗證