Linux用scp实现无密码传输文件和目录(使用密钥)

一.SCP简介

SCP(Secure Copy,安全复制)是一个在远程(本地与远程)服务器间安全的进行文件传输的方法。它以SSH协议为基础,使用SSH协议的22端口。

二.SCP无密码传输原理

原理

首先由用户生成一对密钥,然后将公钥保存在SSH服务器用户的目录下.ssh子目录中的authorized_key文件里(/root/.ssh/authorized_key).私钥保存在本地计算机.当用户登陆时,服务器检查authorized_key文件的公钥是否与用户的私钥对应,如果相符则允许登入,否则拒绝.由于私钥只有保存在用户的本地计算机中,因此入侵者就算得到用户口令,也不能登陆到服务器.

实现

将来源服务器A中的密钥文件 “./.ssh/id_rsa.pub"内容, 拷贝到目标服务器B的”./.ssh/authorized_keys",建立信任关系。

场景

在远程拷贝的时候,需要配置scp的 无密码 复制文件和目录。在编写Shell脚本的时候非常有用,你不希望shell脚本在执行过程中因为要检验密码被打断而报权限错误吧。

来源服务器A,IP:192.168.128.132;
目标服务器B,IP:192.168.128.133;
实现:A免密码输入拷贝文件到B。

三.实现过程

  1. 在来源服务器A 上执行如下命令来生成配对密钥
  • 切换到ssh目录中,如:cd ~/.ssh;
cd ~/.ssh
  • 输入命令:ssh-keygen -t rsa;
ssh-keygen -t rsa
  • 下一步输入文件名, 设为空,或者输入如: id_rsa;
  • 下一步Enter same passphrase again,设为:空

在这里插入图片描述

在这里插入图片描述

  1. 在 B 上也同样运行
ssh-keygen -t rsa
  1. 将来源服务器A ~/.ssh/ 目录中的 id_rsa.pub 文件复制到目标服务器B 的 ~/.ssh/ 目录中,并改名为 authorized_keys
    在这里插入图片描述

到此处可以实现A给B发送文件,进行测试

scp /usr/local/shell/host.txt root@192.168.128.133:/usr/local/host

在这里插入图片描述

补充

命令:

复制文件:
1.将本地文件拷贝到远程
scp 文件名 用户名@计算机IP:远程路径
2.从远程将文件拷回本地
scp 用户名@计算机IP:文件名 本地路径

复制目录:
1.将本地目录拷贝到远程
scp -r 目录名 用户名@计算机IP:远程路径
2.从远程将目录拷回本地
scp -r 用户名@计算机IP:目录名本地路径

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值