Linux 实现scp传送不需要密码

前言

由于昨天要从A服务器想B服务器传送一个200G的数据库文件,所以打算晚上进行后台自动传送,但是scp这个命令执行时需要密码,导致nohup无法实现,所以决定写个脚本让其后台执行,但是输入密码这个环节必须去掉,所以想到了建立双机信任这个功能:
我们可以通过在A主机上生成公钥,然后放到B主机上,以后则在A主机需要ssh连接B主机就不需要密码了!

Linux/Unix双机建立信任教程

第一步、需要建立信任关系的2台主机都执行生成密钥

输入ssh-keygen -t rsa之后全部默认回车,这样就会在/root/.ssh下生成密钥文件

[root@platform_iks .ssh]# ssh-keygen  -t  rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
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:
63:9f:6e:8b:98:49:e3:a2:bc:49:8a:a1:d5:1b:03:3a root@platform_iks.internal.lietou.com
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|  .     S        |
| . o   . o .     |
|E o + o   o      |
|oB ..* = o.      |
|+ =o..= ..o.     |
+-----------------+

第二步、 查看~/.ssh生成密钥的文件

[root@platform_iks .ssh]# ll
总用量 12
-rw-------. 1 root root 1675  9月 14 10:46 id_rsa
-rw-r--r--. 1 root root  419  9月 14 10:46 id_rsa.pub
-rw-r--r--. 1 root root 2360  9月 10 15:53 known_hosts

第三步 建立信任关系

A对B建立信任关系

[root@platform_iks .ssh]# scp -r id_rsa.pub 10.10.10.17:/root/.ssh/authorized_keys
[email protected]'s password: 
id_rsa.pub                                                                                        100%  419     0.4KB/s   00:00    
[root@platform_iks .ssh]#

即:把A的公钥(id_rsa.pub)拷贝到B,并修改id_rsa.pub 为 authorized_keys
此时需要输入密码(之前未建立信任关系),建立了客户端到服务端的信任关系后,客户端就可以不用再输入密码,就可以从服务端拷贝数据

第四步 在B机器上执行同样的操作

[root@localhost .ssh]# ssh-keygen --help
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ^C
[root@localhost .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
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:
b3:b4:62:1b:5a:fb:8c:70:50:6c:22:aa:11:2e:01:23 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|E |
|o. . |
|o . . + |
|.+ . + |
|+. . S |
|o. . . + |
|. . * o |
| * B |
| . +.o |
+-----------------+
[root@localhost .ssh]# ll
总用量 16
-rw-r--r--. 1 root root 419 9月 14 10:52 authorized_keys
-rw-------. 1 root root 1671 9月 14 10:54 id_rsa
-rw-r--r--. 1 root root 408 9月 14 10:54 id_rsa.pub
-rw-r--r--. 1 root root 2357 9月 12 14:35 known_hosts
[root@localhost .ssh]# scp -r id_rsa.pub 10.10.10.20:/root/.ssh/authorized_keys
[email protected]'s password:
id_rsa.pub

第五步 测试

[root@localhost ~]# scp -r a 10.10.10.20:/root/
a 100% 0 0.0KB/s 00:00
[root@localhost ~]# ls
双机之间拷贝文件,不再需要输入密码了
双机信任关系已经建立!

你可能感兴趣的:(Linux 实现scp传送不需要密码)