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/