最近發(fā)現(xiàn)一個(gè)很嚇人的事情,備份服務(wù)器里的備份目錄下竟然沒有備份文件,仔細(xì)一看原來是scp命令需要密碼的問題球散。之前建立過信任關(guān)系,可能是因?yàn)樾薷牧藃oot密碼散庶,不成功了蕉堰。
下面說下具體操作凌净。
通常用scp命令通過ssh獲取對(duì)方linux主機(jī)文件的時(shí)候都需要輸入密碼確認(rèn),不過通過建立信任關(guān)系屋讶,可以實(shí)現(xiàn)不輸入密碼冰寻。
這里假設(shè)需要備份的服務(wù)器 S 的IP:192.168.0.1
用作備份的服務(wù)器 B 的 IP:192.168.0.2
需要從S免密碼輸入復(fù)制文件至B。
- 在服務(wù)器 S 上執(zhí)行如下命令來生成配對(duì)密鑰:
ssh-keygen -t rsa
按照提示操作皿渗,注意斩芭,不要輸入passphrase,因?yàn)槲业闹耙呀?jīng)操作過乐疆,所以還提示了是否覆蓋划乖,輸入 "y"回車就可以。其他提示信息如下
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ff:8e:85:68:85:94:7c:2c:46:b1:e5:2d:41:5c:e8:9b root@localhost.domain
- 將 /root/.ssh/ 目錄中的 id_rsa.pub 文件復(fù)制到 服務(wù)器 B 的 /root/.ssh/ 目錄中诀拭,并改名為 authorized_keys迁筛。
scp .ssh/id_rsa.pub root@192.168.0.2:/root/.ssh/authorized_keys
以后從服務(wù)器 S scp 到服務(wù)器 B 就不需要密碼了。
3.使用此方法需要注意:復(fù)制的兩臺(tái)計(jì)算機(jī)需要用相同的賬戶名耕挨,這里都是用的root。為了安全起見尉桩,需要在兩臺(tái)機(jī)器中創(chuàng)建相同的賬號(hào)筒占,然后在服務(wù)器 S 上用 su 命令切換至該賬號(hào)下,然后執(zhí)行第1步蜘犁,第2步中復(fù)制文件時(shí)可能 ~/.ssh/ 目錄并不存在翰苫,需要手動(dòng)創(chuàng)建。
在第2步中如果機(jī)器中已經(jīng)存在authorized_keys文件这橙,則需注意奏窑,這個(gè)文件可以包含多個(gè)SSH驗(yàn)證信息,這時(shí)可用 cat >> 命令將驗(yàn)證文件內(nèi)容附加上去屈扎。
現(xiàn)在服務(wù)器 S 上執(zhí)行腳本 scp ~/.ssh/id_rsa.pub root@192.168.0.2:/root/.ssh/s.pub
然后在服務(wù)器 B 上執(zhí)行 cat ~/.ssh/s.pub >> ~/.ssh/authorized_keys
最后可以用個(gè)小的文本文件試試埃唯。
在服務(wù)器 S 上執(zhí)行
touch ~/test
scp ~/test root@192.168.0.2:/root/
在服務(wù)器 B 上用 ls查看是否成功,其實(shí)剛才在服務(wù)器 S 上執(zhí)行 scp 的時(shí)候已經(jīng)提示傳輸成功了鹰晨。