SCP 免密远程拷贝文件

原文借鉴:https://blog.csdn.net/weixin_33758863/article/details/85146762?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

     https://www.cnblogs.com/yangxiaochu/p/6913533.html

方法一:基于公钥和私钥的信任办法

  ssh-keygen -t rsa  

1、在服务器A、B中分别生成ssh-key,生成方式输入ssh-keygen,然后连续回车

2、进入.ssh目录,拷贝服务器B中的id_rsa.pub文件内容

3、在服务器A目录.ssh下面新建文件authorized_keys,把服务器B中的id_rsa.pub文件内容复制进去

后续使用SCP命令远程拷贝文件B->A,不再需要输入密码

方法二:sshpass

sshpass的安装:
Ubuntu:apt-get install sshpass

centos:

下载地址:http://sourceforge.net/projects/sshpass/
wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz

yum -y install gcc
tar xvzf sshpass-1.05.tar.gz
cd sshpass-1.05.tar.gz
./configure
make
make install

sshpass -p 密码 scp -r 1.txt root@10.1.1.1:/root 

sshpass -f 存放密码的文件 scp -r 1.txt root@10.1.1.1:/root

scp基于密钥传输

[root@node1 ~]# scp --help

usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-iidentity_file]

           [-l limit] [-ossh_option] [-P port] [-S program]

          [[user@]host1:]file1 ... [[user@]host2:]file2

[root@node1 ~]#

语法详解:

-1246BCpqrv:                     

 -1 强制scp 用协议1

-2 强制scp 用协议2

-4 强制scp用IPV4的网址

-6 强制scp用IPV6的网址

-B 选择批处理模式(防止输入密码)

-C 允许压缩。 标注-C到ssh(1)来允许压缩

-p指定修改次数,连接次数,还有对于原文件的模式

-q把进度参数关掉

-r递归的复制整个文件夹

-v详细方式显示输出

-c cipher:选择cipher来加密数据传输。

-F ssh_config: 指定ssh的配置文件    

-I identity_file:   选择被RSA认证读取私有密码的文件。             

-I limit:限制传输带宽,也就是速度 用Kbit/s的速度                    

-o ssh_option:可以把ssh_config中的配置格式传到ssh中。                  

-P port:   指定ssh端口

-S program:指定一个加密程序。

user@      用户

host1      主机(可以是ip,也可以是域名)
例如:

scp -i [密钥文件路径] -r user@ip:要下载文件的绝对路径  本地路径
原文地址:https://www.cnblogs.com/yifengs/p/12572686.html