两个服务器之间通过密钥免密传输文件
问题需求:把文件从服务器A传输到服务器B
1. 在两台服务器上分别制作密钥对
在服务器上制作密钥,用密码登录到你打算使用密钥登录的服务器账户,制作密钥:
[root@host ~]$ ssh-keygen <== 制作密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 密钥密码,或者按Enter设为空
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:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host
这里会得到一个公钥id_rsa.pub
和一个私钥id_rsa
。把服务器A的公钥保存下来
2. 把服务器A的公钥安装在服务器B上
因为要从服务器A登录到服务器B
登录服务器B,在服务器B上安装服务器A的公钥:
[root@host ~]$ cd ~/.ssh
[root@host .ssh]$ cat id_rsa.pub >> authorized_keys <==这里的id_rsa.pub是服务器A的公钥
保证以下文件权限:
[root@host .ssh]$ chmod 600 authorized_keys
[root@host .ssh]$ chmod 700 ~/.ssh
3. 文件传输
使用SCP命令进行文件传输
scp /home/aaa/love.txt bbb@100.100.100.*:/home/bbb/code
其中:
scp
:是文件传输命令
/home/aaa/love.txt
:是表示对该路径下的love.txt
进行传输
bbb@100.100.100.*
:是登录服务器B的账户名和IP
/home/bbb/code
:将文件love.txt
传输到该路径下,code
是一个文件夹