远程传输
在进行数据库备份的时候,我们一般都是将数据备份到数据库这台服务器上,那么为了防止出现意外情况(服务器停电、服务器损坏等)而造成数据丢失、应用程序丢失,我们进行双重备份。将数据库服务器的数据进行异地备份。
这里我们将数据库先备份到本地服务器,然后利用scp命令将备份文件远程复制到远程机上。
1 | scp -r local_folder remote_username@remote_ip:remote_folder |
- local_folder 是本地服务器的数据库文件的路径。
- remote_username 是远程机的用户名。
- remote_ip 是远程机的IP地址。
- remote_folder 是存放到远程机的路径。
出错了, — _—!
原来我远程备份的是Windows系统,Windows系统是没有ssh服务需要安装一个客户端来提供服务,这里选择的工具是“Bitvise SSH Server”(下载方式很多,百度上搜索一下)。
- 运行安装exe文件,按照操作步骤进行安装。
勾选“I agree……”,可自定义选择安装路径,然后点击Install按钮
选择“Personal edition”,点击OK按钮。
输入名字信息(可以随便输入),然后点击OK按钮
点击“确定”按钮。
点击“Open easy setting”,打开配置页面
选择“Open port(s) to any computer”,然后点击Next按钮
去掉图中的勾选项,不让使用windows账号登陆。然后点击“3.Virtual accounts”选项卡。
点击add按钮,创建一个虚拟账户
先输入用户名,然后勾选,设置密码
点击“Save changes”按钮,回到主面板。
在主面板上点击Start Server按键。
然后执行cmd进入命令行输入框,执行“netstat -ano | findstr 22”命令,查看22(ssh)端口是否开启。
显然22(SSH)端口已经开启。
登陆Linux系统,执行scp命令向winserver服务器拷贝文件,查看结果。
1
2
3
4
5
6
7
8
9
10
11
12
13echo "hello world" >> a.txt
scp a.txt sshuser@10.2.3.210:/D:/key
The authenticity of host '10.2.3.210 (10.2.3.210)' can't be established.
DSA key fingerprint is 71:b2:88:c7:f7:cd:b9:ec:31:2e:13:54:6b:76:0f:8c [MD5].
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.2.3.210' (DSA) to the list of known hosts.
sshuser@10.2.3.210's password: 【这里输入sshuser用户的密码】
a.txt 100% 12 0.0KB/s 00:00在windows系统查看文件是否复制过来。
登陆Linux主机,在相关用户下执行如下命令,生成公钥:
1
ssh-keygen -t rsa (连续三次回车,可以生成公钥和私钥)
将在Linux主机的当前用户HOME目录下的.ssh目录,生成id_rsa.pub和id_rsa,其中,id_rsa是密匙,id_rsa.pub是公匙。
1
2
3
4
5
6
7cd ~/.ssh
scp id_rsa.pub sshuser@10.2.3.210:/D:/key/
sshuser@10.2.3.210's password: 【这里输入sshuser用户的密码】
id_rsa.pub 100% 399 0.4KB/s 00:00将公匙导入到WinSSHD
进入Open easy setting–>Virtual accounts选项卡,点击Edit按钮
点击“Public keys”
点击Import,导入刚才从Linux系统传过来的公钥(authorized_keys),然后点击Close。
看到出现“1 key”,点击OK按钮。
再次通过Linux系统进行传输,检查能否正常传输。
1
2
3scp id_rsa.pub sshuser@10.2.3.210:/D:/key/
id_rsa.pub 100% 399 0.4KB/s 00:00显然已经得到认证,无需输入密码即可进行传输。