centos平台scp通过密钥远程复制文件(免密登录)

摘要:
您可以首先将包含符号链接的源目录打包到tar包中,然后在解压缩tar包之前远程复制它

一,说明:两台机器的平台和ip

1,a服务器:

centos8:ip:121.122.123.47

版本

[root@yjweb ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core) 

2,    j服务器:

centos6:ip:121.122.7.134

版本:

[root@os3 ~]# cat /etc/redhat-release
CentOS release 6.10 (Final)

我们的目示是通过scp程序把a服务器上的文件复制到j服务器上

说明:ip地址仅供演示,非真实

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/

 说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,在a服务器上生成密钥:

1,生成密钥

[root@yjweb ~]# ssh-keygen -t rsa

说明:中间一路回车即可,

不要设置密码

说明:-t参数可以指定四种算法类型 

[-t dsa | ecdsa | ed25519 | rsa]

我们选择 rsa

说明:查看参数可以使用通用的帮助命令:

[root@yjweb ~]# man ssh-keygen 

2,密钥生成后,可以从用户的home目录下.ssh目录看到

[root@yjweb ~]# ls .ssh/
authorized_keys  id_rsa  id_rsa.pub  known_hosts

三,从a服务器复制公钥到j服务器

1,用ssh-copy-id命令复制公钥到j服务器上

[root@yjweb ~]# ssh-copy-id -i .ssh/id_rsa.pub root@121.122.7.134
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@121.122.7.134's password:
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'root@121.122.7.134'"
and check to make sure that only the key(s) you wanted were added.

说明:ssh-copy-id属于这个rpm包,如发现不存在可以通过yum安装

[root@yjweb ~]# whereis ssh-copy-id
ssh-copy-id: /usr/bin/ssh-copy-id /usr/share/man/man1/ssh-copy-id.1.gz
[root@yjweb ~]# rpm -qf /usr/bin/ssh-copy-id
openssh-clients-8.0p1-4.el8_1.x86_64

2,登录到j服务器,查看authorized_keys

[root@os3 ~]# more .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiZNKuLsJqi0M......

可以看到我们在a服务器的公钥已经成功添加到了j服务器的 authorized_keys文件上

四,从a服务器用scp复制一个文件到j服务器

      注意看是否会提示输入j服务器的密码

1,检查j服务器上的目标文件夹

[root@os3 test]# ll /data/dev/think_file/test/
total 0

2,在a服务器上执行scp命令

[root@yjweb orig]# scp -P 22 /data/web/think_file/cover/orig/1/10.gif root@121.122.7.134:/data/dev/think_file/test/

说明:

-P 22:   在此处指定目标服务器的端口
root 登录目标服务器用的账号
121.122.7.134 目标服务器用的ip
/data/dev/think_file/test/  在目标服务器上的路径

3,回到j服务器,再次检查测试用的目标文件夹

[root@os3 test]# ll /data/dev/think_file/test/
total 1300
-rw-r--r-- 1 root root 1330533 Mar 16 14:54 10.gif

五,如何在远程服务器上创建目录

[root@yjweb ~]# ssh -p 22 root@121.122.7.134 "mkdir -p /data/dev/think_file_test/cover/orig/1/"

说明: 

-p : 用来指定目标服务器的端口号

六,如何复制一整个目录到目标机器?

1,加参数 -r即可

[root@yjweb web]# scp -P 22 -r /data/web/think_file/cover/orig/1/ root@121.122.7.134:/data/dev/think_file/test/
7.gif                                                                        100%  548KB 489.4KB/s   00:01
9.gif                                                                        100%  542KB 700.2KB/s   00:00
11.png                                                                       100%  997KB   1.4MB/s   00:00
10.gif                                                                       100% 1299KB   1.3MB/s   00:00
8.gif                                                                        100%  440KB 448.9KB/s   00:00

2,一点值得说明的知识:

-r      Recursively copy entire directories.  Note that scp follows symbolic links encountered in the tree traversal.

-r 用来复制整个目录

需要注意的是scp会把符号链接下的文件也复制过来

如何避免这个问题?

可以先把包含符号链接的源目录打包成tar包,
远程复制tar包过来后再解开

免责声明:文章转载自《centos平台scp通过密钥远程复制文件(免密登录)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt之表单布局(QFormLayout)Centos 安装MQTT服务器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SCP和Rsync远程拷贝的几个技巧

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远...

CentOS 7 如何清空文件内容

https://www.cnblogs.com/zqifa/p/linux-vim-4.html 方法1、在非编辑状态下使用快捷键gg跳至首行头部,再使用dG即可清空,或输入"%d"清空,然后保存即可。但当文件内容较大时,处理较慢 方法2、cat /dev/null > /var/log/yum.log(替换为需要清空内容文件名) 或cp /dev/...

linux服务器的Gzip文件压缩方法[转]

一、gzip介绍          gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。1992年10月31日第一次公开发布,版本号是0.1,目前的稳定版本是1.2.4。         Gzip主要用于Unix系统的文件压缩。我们在L...

CentOS 每个版本的区别

当我们下载CentOS 7 时会发现有几个版本可以选择,如下: 1、CentOS-7-DVD版本:DVD是标准安装盘,一般下载这个就可以了。 2、CentOS-7-NetInstall版本:网络安装镜像。 3、CentOS-7-Everything版本:对完整版安装盘的软件进行补充,集成所有软件。 4、CentOS-7-GnomeLive版本:GNOME桌...

腾讯云ubuntu18.04启用root用户

需求场景 腾讯开通的ubuntu主机,默认用户是ubuntu,并且这个ubuntu的权限还是相对比较低的,虽然提升了安全性,可是对于个人站长来说方便才是硬道理,自己也不会用root用户瞎操作。这个时候就需要用权限更大的root用户登录操作了。 步骤一:设置root密码 sudo passwd root回车设置两次密码即可 步骤二:修改ssh登录的配置 很多...

Windows Server 2008 R2远程桌面服务配置和授权激活(转)

转载▼ http://www.it165.net/os/html/201305/5174.html 日常工作中,经常需要远程连接到服务器上,然而服务器系统默认允许同时连接的最大连接数只有2个。这样一来,问题就来了,常常遇到“终端服务器超出最大连接数”,导致无法正常登陆服务器。那么如何才能解决这一问题呢?这就要依靠远程桌面服务了。   一、 远程桌面服务...