實驗目的:
         在Linux下通過SSH方式遠端連線到其他Linux裝置,並且不需要輸入登入密碼,通過非對稱金鑰進行驗證。此方法為使用遠端連線頻繁的使用者有效的提高了工作的便捷性。
實驗環境:
         Linux主機一臺,普通使用者賬號兩個(此實驗中使用:user和user2)
         需要的Packages:sshd,sshd-server,sshd-client
實驗要求:
         user通過ssh連線本機並且使用user2賬戶直接登入(不需要輸入user2的密碼)
實驗步驟:
         注:增加使用者user和user2的步驟在實驗中省略
         1. 生成本地使用者user的公鑰和私鑰
             使用user賬戶登入終端,執行指令 ssh-keygen -t dsa 出現以下輸出
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa): 直接回車,保留預設KEY存放路徑
Created directory `/home/user/.ssh`.
Enter passphrase (empty for no passphrase): 直接回車,密碼為空
Enter same passphrase again: 直接回車,密碼為空
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
cd:fa:66:ca:d6:80:96:4e:7f:e4:8d:b3:14:d5:83:be [email]user@linux.weitnt.cn[/email]
          2. 檢視生成的公鑰及私鑰位置和內容
              執行指令 ls $HOME/.ssh  檢視user使用者家目錄下的.ssh目錄下應該有以下2個檔案
id_dsa              使用者的私鑰 
id_dsa.pub      使用者的公鑰
              執行指令 cat $HOME/.ssh/id_dsa.pub 檢視id_dsa.pub的內容,類似下面的樣子
ssh-dss
AAAAB3NzaC1kc3MAAACBAKArpnyNrA2ZZzF+EBJJUv08gslUvsuF2xKAZufgeguS/5sKUD5DyXLDVYuc80f6C6toJNM4zPB/oUM8X8QrUy8nq3/P2xSzybpEfKVoEY1xb0LB+uuTP0Nxlpnv7a3auLzHYabbBBKTheTcudXxMPveiR+lSM7470xnu2B7c8xPAAAAFQCvUdIZmjrDh19xB6H9QlJl8PtBqQAAAIEAkrl3mTOgwEQyXUo9J3G2x0c3mdxJv8Itto2aVNzaTLteXSKaLPBFFGqr/ZzTmH71huZAYMloUvO8Q3Sb/QsU5cjNHthHbAjq7QUunL/+hYVskRPE+XNioLBLm/YpFfPeyfSJzNLVL7Q0E8zTMWvL96GPhoNQEOtzdOqqygnvdVwAAACAZkBTUe9w0Iy9L/vKEzE9Es5kLdTVXAwQtrjD8SWl1wKJMK6ruoahjkoC8Yw7eQR/guGNAxD1u63N+vHbT6MtYvoTNcdwVvCfx1f6VxqhgkcQfFC23SfMrny4Rt74MqJnYwwxRdq7lfY2GY3IcI2e1YTpugzcjk7v50Nt7jcsM+Q= [email]user@linux.weitnt.cn[/email]
          3. 將本地使用者user的公鑰傳給遠端使用者user2
              通過Email將user剛剛生成的公鑰傳遞給user2,方法如下
               mail -s “user`s key” [email]user2@linux.weitnt.cn[/email] < /home/user/.ssh/id_dsa.pub
          4. user2獲得user的公鑰
              使用user2賬戶登入,使用 mail 指令收取郵件,我們會看到如下內容
[user2@linux ~]$ mail
Mail version 8.1 6/6/93.  Type ? for help.
“/var/spool/mail/user2”: 1 message 1 new
>N  1 [email]user@linux.weitnt.cn[/email]  Tue Feb 17 14:04  14/1058  “user`s key”
              輸入n回車顯示郵件內容,然後輸入 w user.key 將郵件內容儲存為user.key檔案
              輸入q或者x退出mail介面
          5. user2對獲得的公鑰的設定
              在user2家目錄出現剛剛儲存的名為user.key的檔案
              使用指令 mkdir .ssh ; chmod 700 .ssh 建立.ssh目錄並將其許可權設定為700
              使用指令 cp user.key .ssh/authorized_keys 將user.key檔案拷貝到.ssh目錄下並且重新命名為authorized_keys檔案
              使用指令  chmod 600 authorized_keys  將檔案許可權設定文600
              注:以上兩步設定檔案許可權是從key的安全方面考慮的,不執行此步驟不會影響實驗要求的完成。
          6. 實驗測試
              在使用者user介面下輸入指令 ssh [email]user2@linux.weitnt.cn[/email] 使用user2使用者登入
              登入時可能會出現如下資訊,輸入yes繼續,就會登入到user2使用者環境
[user@linux .ssh]$ ssh [email]user2@linux.weitnt.cn[/email]
The authenticity of host `linux.weitnt.cn (192.168.10.252)` can`t be established.
RSA key fingerprint is ee:fa:6d:4b:bc:c3:d8:f1:0e:fc:cd:34:b6:b4:7f:e8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added `linux.weitnt.cn,192.168.10.252` (RSA) to the list of known hosts.
[user2@linux ~]$ exit          輸入exit指令,退出user2使用者介面
               再次在使用者user環境下輸入指令 ssh [email]user2@linux.weitnt.cn[/email]   
               如果可以直接登入到user2的使用者環境則表示實驗成功。
               顯示的資訊如下
[user@linux ~]$ ssh [email]user2@linux.weitnt.cn[/email]
Last login: Tue Feb 17 14:20:36 2009 from linux.weitnt.cn
[user2@linux ~]$
 
實驗總結:
         user傳遞公鑰時本文的方法是使用mail,當然可以使用其他的很多方法來達到這個目的。
         user2在獲得user的公鑰後一定要將其儲存在正確位置並且命名正確,其絕對路徑為/home/user2/.ssh/authorized_keys($HOME/.ssh/authorized_keys)。
         文中使用的linux.weitnt.cn域名可以使用本機的IP地址代替,或者也可檢視/etc/hosts檔案的內容做相應的調整。
          本實驗是在一臺裝置中增加兩個使用者的方式來完成的,但在實際工作環境中這兩個使用者可能處在不同裝置中,這並不影響本實驗的真實性和準確性,以上實驗的全部內容在實際工作環境中的多裝置多使用者情況下是完全可行的。
 
 
RHCE_LAB(2)SSH遠端登入自動驗證(不輸入使用者登入密碼)的實現--結束