原理:使用所需用戶登陸客戶端,使用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方法同上