1. 生成SSH密鑰對
首先,你需要在客戶端機器上生成一個SSH密鑰對。打開終端,執行以下命令
ssh-keygen
或ssh-keygen -t rsa -b 2048(效果相同)
按照提示操作,可以按回車鍵接受默認的文件名(通常是~/.ssh/id_rsa)和密碼短語(可以為空,直接按回車)。
2. 將公鑰復制到服務器
生成密鑰后,使用ssh-copy-id命令將公鑰復制到服務器上。在客戶端執行:
ssh-copy-id 用戶名@服務器IP地址
例:ssh-copy-id root@123.56.83.xxx
這條命令會提示你輸入服務器的密碼。成功執行后,你的公鑰將被添加到服務器的~/.ssh/authorized_keys文件中。
上述操作也可以進行手動添加
你需要獲取客戶端的公鑰內容:
cat ~/.ssh/id_rsa.pub
然后,登錄到服務器,將公鑰內容添加到~/.ssh/authorized_keys文件中:
echo "公鑰內容" >> ~/.ssh/authorized_keys
3.測試SSH密鑰登錄
在客戶端機器上,嘗試使用以下命令登錄服務器,看是否可以無需密碼直接登錄:
ssh 用戶名@服務器IP地址
例:ssh root@123.56.83.xxx
如果一切設置正確,你應該能夠直接登錄到服務器而不需要輸入密碼。
之后就可以使用scp進行文件上傳了
#!/bin/bash
TEMPNAME=$(ls /www/backup/database/mysql/crontab_backup/hz_fw_game/ | grep ?hz_fw_game_$(date -d -0day +%Y-%m-%d)_*)
scp -i /root/.ssh/id_rsa /www/backup/database/mysql/crontab_backup/hz_fw_game/$TEMPNAME root@123.56.83.xxx:/root/gmplatform_database_back/hz_fw_game/