最近發(fā)現(xiàn)一個很嚇人的事情刽脖,備份服務(wù)器里的備份目錄下竟然沒有備份文件举庶,仔細一看原來是scp命令需要密碼的問題执隧。之前建立過信任關(guān)系,可能是因為修改了root密碼户侥,不成功了镀琉。下面說下具體操作。
通常用scp命令通過ssh獲取對方linux主機文件的時候都需要輸入密碼確認蕊唐,不過通過建立信任關(guān)系滚粟,可以實現(xiàn)不輸入密碼。
這里假設(shè)需要備份的服務(wù)器 S 的IP:192.168.0.1
用作備份的服務(wù)器 B 的 IP:192.168.0.2
需要從S免密碼輸入復(fù)制文件至B刃泌。
1. 在服務(wù)器 S 上執(zhí)行如下命令來生成配對密鑰:?
ssh-keygen -t rsa?
按照提示操作凡壤,注意署尤,不要輸入passphrase,因為我的之前已經(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
2. 將 /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ù)制的兩臺計算機需要用相同的賬戶名串稀,這里都是用的root。為了安全起見狮杨,需要在兩臺機器中創(chuàng)建相同的賬號母截,然后在服務(wù)器 S 上用 su 命令切換至該賬號下,然后執(zhí)行第1步橄教,第2步中復(fù)制文件時可能 ~/.ssh/ 目錄并不存在清寇,需要手動創(chuàng)建。
在第2步中如果機器中已經(jīng)存在authorized_keys文件护蝶,則需注意华烟,這個文件可以包含多個SSH驗證信息,這時可用 cat >> 命令將驗證文件內(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
最后可以用個小的文本文件試試盔夜。
在服務(wù)器 S 上執(zhí)行
touch ~/test
scp ~/test root@192.168.0.2:/root/
在服務(wù)器 B 上用 ls查看是否成功,其實剛才在服務(wù)器 S 上執(zhí)行 scp 的時候已經(jīng)提示傳輸成功了堤魁。