SSH無密碼驗證登陸實現

原理:使用所需用戶登陸客戶端,使用ssh-keygen生成用戶主機私鑰和密鑰,並把客戶端公鑰上傳到服務器端固定的文件中。當客戶端經過ssh訪問服務器端時,服務器端會生成一個隨機數並用客戶端的公鑰對隨機數進行加密,併發給客戶端。客戶端收到加密數後在使用私鑰解密,並將解密數傳給服務器端,服務器端確認解密無誤後就容許客戶端進行鏈接了。服務器


做用:使用ssh登陸主機是不須要輸入密碼。能夠把scp 的指令放置於 crontab 服務中, 讓咱們的系統透過 scp 直接在背景底下自行 按期的進行網絡複製與備份。網絡


應用示例:併發

            兩臺主機客戶端ser1與服務器端ser2,ip地址分別爲10.1.1.1與10.1.1.2。
            因爲客戶端ser1常常訪問ser2主機,現需實現客戶端ser1無需密碼便可使用ssh登陸ser2主機。ssh

步驟:ide

    一、檢查系統是否安裝SSH服務與rsync服務(rsync是一個遠程數據同步工具,能夠經過網絡快速同步多臺主機間的文件)。若未安裝需yum安裝。工具

[root@ser1 ~]# rpm -qa |grep openssh 加密

openssh-server-5.3p1-20.el6.i686
openssh-5.3p1-20.el6.i686 
openssh-askpass-5.3p1-20.el6.i686 
openssh-clients-5.3p1-20.el6.i686spa

[root@ser1 ~]# rpm -qa |grep rsync 
rsync-3.0.6-5.el6.i686rest

    二、使用root用戶登陸,修改ssh配置文件orm

[ root@ser1 ~]# vi   /etc/ssh/sshd_config
RSAAuthentication yes                  //啓用RSA驗證
PubkeyAuthentication yes                  //啓用公鑰私鑰配對驗證方式
AuthorizedKeysFile         .ssh/authorized_keys           //公鑰文件路徑

    三、重啓sshd

[root@ser1 ~]# service sshd restart

    四、使用無需密碼登陸的用戶名登陸,生成私鑰和密鑰。

[root@ser1 ~]# ssh-keygen   -t    rsa                 //這裏使用的root登陸,加密方式可以使用rsa會dsa,默認爲rsa。所有默認回車便可


[ root@ser1 ~]# ls -ld ~/.ssh; ls -l ~/.ssh          //查看是否生成公鑰和私鑰文件
drwx------. 2 root root 4096 2月 27 21:59   /root/.ssh 
-rw-------. 1 root root 1675 2月 27 21:58 id_rsa    //私鑰
-rw-r--r--. 1 root root 401 2月 27 21:58 id_rsa.pub   //公鑰

注:一、普通用戶生成公鑰文件在/home/用戶名/.ssh/下。
       二、~/.ssh/ 目錄必需要是 700 的權限才行。id_rsa必須爲600且屬於用戶本身。不然密鑰對比可能失敗

    五、將客戶端ser1生成的公鑰檔案數據上傳到服務器ser2上

[root@ser1 ~]# scp    .ssh/id_rsa.pub       10.1.1.2:/root                  //把ser1生成的公鑰文件傳輸到ser2的root目錄下

[root@ser2 ~]# cat  id_rsa.pub  >>/root/.ssh/authorized_keys         //把ser1公鑰文件內容導入到authorized_keys文件

注:authorized_keys權限要設置爲644.  

    七、驗證

[root@ser1 ~]# ssh 10.1.1.2         //嘗試ssh登陸ser2

Last login: Sat Feb 28 06:01:32 2015 from 10.1.1.1 
[root@ser2 ~]#

注:若想ser2無密碼登陸到ser1方法同上

相關文章
相關標籤/搜索