在linux下使用ssh認證,不輸入密碼訪問另一台機器 LINUX程式員在日常工作中都會遇到遠程登陸這樣的問題,每次輸入密碼是不是很煩人. www.2cto.com 我就在這整理一下,ssh認證到底是怎麼搞的! 在linux下使用ssh認證,不輸入密碼訪問另一台機器 在工作中由於常用到ssh登入其它機器,所在每台機器上做了ssh認證,這樣就不用每次都輸入繁瑣的密碼。 有兩台機器:server_1 和 server_2 帳號都為:work 轉到work帳號下:su - work 運行:ssh-keygen -t rsa (一路斷行符號下去 ) 命令輸出為: www.2cto.com Enter file in which to save the key (/home/work/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/work/.ssh/id_dsa. Your public key has been saved in /home/work/.ssh/id_dsa.pub. The key fingerprint is: 32:21:e1:3b:7d:6e:de:4b:39:da:af:38:fe:90:40:61 在/home/work目錄下就產生了.ssh的隱含目錄,進入些目錄下產生兩個檔案: id_dsa ------------ 私密金鑰檔案 id_dsa.pub ------------ 公開金鑰檔案 將id_dsa.pub複製一份檔案名稱為:authorized_keys2 並將 authorized_keys2 的屬性改為 600 即檔案所屬使用者有讀和寫的許可權,組使用者和其它使用者禁止讀寫,用命令: 代碼: cp id_dsa.pub authorized_keys2 chmod 600 authorized_keys2 同樣在server_2上做以上操作,下一步就實現真正的ssh認證了: 將server_1上/home/work/.ssh目錄下的id_dsa.pub公開金鑰檔案拷到server_2的/home/work/.ssh目錄下(注意:不要覆蓋掉server_2的id_dsa.pub,拷時要改名)如: 代碼: [work@server_1 .ssh]$ scp id_dsa.pub 在server_2的/home/work/.ssh目錄下就有了如下檔案: authorized_keys2 id_dsa id_dsa.pub server_1.pub 用命令: 代碼: cat server_1.pub >> authorized_keys2 (注意一定要用追加操作 ">>" 不能用 ">") 這樣server_1到server_2的ssh認證就做好了。在server_1上用命令: 代碼: ssh 就直接登入到server_2上,而不用輸入密碼了。 server_2到server_1的認證同上操作即可。