場景:先由A和B兩臺機器,要使用scp命令,在shell中將A主機的文件複製到B主機,且這個shell腳本是crontab定時任務,自動定時執行,所以需要配置免密碼從A複製文件到B。
1. A主機中輸入命令:ssh-keygen -t rsa
在後面的等待輸入全部直接回車,直到命令結束,如下:
[root@cosmoplat-cluster-1 bin]# ssh-keygen -t rsa
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:
SHA256:U/T/AOA2pok3tlfTQqtwz0dQQy2Zm0t1jf62bf8MpBY root@cosmoplat-cluster-1
The key's randomart image is:
+---[RSA 2048]----+
| o .+=.|
| o o .=.=|
| * =. =.|
| . * o *= |
| . S . E.*o |
| o * = B.oo|
| . o = o.+|
| . . . +o|
| .*|
+----[SHA256]-----+
上面會生成一個id_rsa.pub文件到/root/.ssh路徑下。這裏面保存了一個密鑰。
2. 複製文件/root/.ssh/id_rsa.pub 到B主機的/root/.ssh 路徑
3.1 一定要注意:如果B主機下面有authorized_keys文件,則把id_rsa.pub中的內容複製並追加到B主機的authorized_keys文件中
3.2 如果B主機下沒有文件,則vi直接創建一個authorized_keys文件,並把id_rsa.pub中的內容複製到authorized_keys文件中
4. 測試,從A主機直接scp命令複製文件到B主機,可以直接複製過去,如下:
[root@cosmoplat-cluster-1 .ssh]# scp -r /opt/apache-cassandra-2.1.9/bin/backup.sh [email protected]:/home
\S
Kernel \r on an \m
Warm tips :Authorized for Haier Utility's Uses only. All activity may be monitored and reported.
If you have any questions,please contact us.
Mailbox:[email protected]
Phone:68066686 / 1000 / 8173
backup.sh 100% 2579 1.8MB/s 00:00
總結:A主機生成一個證書密鑰給B主機,B主機把這個證書密鑰保存到自己的/root/.ssh/authorized_keys文件中,然後,從A主機複製文件到B主機就不再需要密碼了。
注意:使用此方法需要兩臺計算機使用相同的賬戶名,這裏都是用的root。
over.