在Linux環境下,兩台主機之間傳輸文件一般使用scp命令,通常用scp命令通過
ssh獲取對方linux主機文件的時候都需要輸入密碼確認,不過通過建立信任關係,可以實現不輸入密碼。
這裡假設A的IP:10.0.0.1、B的IP:10.0.0.2
需要從A免密碼輸入複製文件至B。
1. 在主機A上執行如下命令來生成配對密鑰:
ssh-keygen -t rsa
按照提示操作,注意,不要輸入passphrase。提示信息如下
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
scp .ssh/id_rsa.pub 10.0.0.2:/root/.ssh/authorized_keys
以後從A主機scp到B主機就不需要密碼了。
3.使用此方法需要注意:複製的兩台伺服器需要用相同帳戶,這裡都是用的root。為了安全起見,需要在兩台機器中創建相同的賬號,然後在A上用su命令切換至賬號下,執行第1步,第二步中複製文件時可能.ssh目錄並不存在,需要手動創建。
mkdir ~/.ssh
在第2步中如果機器中已經存在 authorized_keys 文件,則需注意,這個文件可以包含多個SSH驗證信息,這時可用 cat >> 命令將驗證文件內容附加上去。
範例複製到
scp .ssh/id_rsa.pub 10.0.0.2:/root/.ssh/a.pub -- root
scp .ssh/id_rsa.pub 10.0.0.2:/home/oracle/.ssh/authorized_keys -- oracle
然後登入到 10.0.0.2 執行 cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys