SSH 三步解决免密登录
1.客户端生成公私钥
2.上传公钥到服务器
3.测试免密登录
1.客户端生成公私钥
本地客户端生成公私钥:(一路回车默认即可)
ssh-keygen上面这个命令会在用户目录.ssh文件夹下创建公私钥
cd ~/.ssh
ls下创建两个密钥:
id_rsa (私钥)
id_rsa.pub (公钥)
2.上传公钥到服务器
这里测试用的服务器地址为:1.1.1.1
用户为:root
ssh-copy-id -i ~/.ssh/id_rsa.pub root@1.1.1.1上面这条命令是写到服务器上的ssh目录下去了
cd ~/.ssh
vim authorized_keys可以看到客户端写入到服务器的 id_rsa.pub (公钥)内容。
3.测试免密登录
客户端通过ssh连接远程服务器,就可以免密登录了。
ssh root@1.1.1.1应用
将开发数据库goc,fids加载到本地
流程
1.配置免密登录
2.远程docker 容器 mysql 用mysqldump 导出数据库 goc,fids为sql文件
3.压缩文件(公司网络带宽很低,200k)
4.下载压缩文件
5.解压
6.用mysql命令加载到本地docker容器
最终脚本
#!/bin/bash
export SQL_FILE_NAME=`date +'%Y%m%d%H%M%S'`.sql
export SQL_FILE_DOCKER=/var/lib/mysql/$SQL_FILE_NAME
export SQL_FILE_LOCAL=/root/mysql/data/$SQL_FILE_NAME
echo "export sql"
ssh root@1.1.1.1 >/dev/null 2>&1 << eeooff
docker exec -i mysql bash -c "mysqldump -uroot -ppassword --databases goc fids > $SQL_FILE_DOCKER"
exit
eeooff
echo "package file"
ssh root@1.1.1.1 >/dev/null 2>&1 << eeooff
xz -zq $SQL_FILE_LOCAL
mv $SQL_FILE_LOCAL.xz /root
exit
eeooff
echo "download sql"
sftp root@1.1.1.1 << eeooff
get $SQL_FILE_NAME.xz
quit
eeooff
echo "delete remote file"
ssh root@172.21.126.135 >/dev/null 2>&1 << eeooff
rm -rf $SQL_FILE_NAME.xz
exit
eeooff
echo "unpackage sql"
xz -dvv $SQL_FILE_NAME.xz
echo "load sql into db"
echo "111111"|sudo mv $SQL_FILE_NAME mysql/data
docker exec -it acdm-mysql bash -c "mysql -uroot -ppassword < $SQL_FILE_DOCKER" > /dev/null 2>&1
docker exec -it acdm-mysql bash -c "rm -rf $SQL_FILE_DOCKER"
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!