SCP实现无需密码传输文件
SCP概述
Linux为我们提供了两个用于文件copy的命令,一个是cp,一个是scp,但是他们略有不同
CP ----- 主要是用于在同一台电脑上,在不同的目录之间来回copy文件
SCP --- 主要是在不同的Linux系统之间来回copy文件
下面我们就主要讲一下SCP命令的基本用法:
scp 传输文件路径 用户名@传输文件目标IP:目标路径(可以指定新的文件名)
在Linux环境下,两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方linux主机文件的时候都需要手动输入密码确认。

最近的一个项目中就遇到了这个问题,利用os模块的os.system()来执行系统命令来完成定时任务,我们不可能手动输入密码,而应该实现无密传输,我们可以通过建立信任关系,可以实现不输入密码而进行数据传输。
假设俩个服务器A:192.168.111.100,服务器B:192.168.111.101之间进行数据传输:
1、在主机A上执行如下命令来生成配对密钥: (按照提示操作,注意,不要输入passphrase,一直回车完成)
ssh-keygen -t rsa

2、查看B主机上面是否存在authorized_keys文件,如果没有此文件, 将A主机.ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys
scp .ssh/id_rsa.pub 192.168.111.101:/root/.ssh/authorized_keys
如果B主机上存在authorized_keys文件,则需注意,这个文件可以包含多个SSH验证信息,这时先把id_rsa.pub文件传到B主机的/root/.ssh目录下面(重新命名文件名),然后再利用 cat >>命令将验证文件内容附加上去
比如复制到scp .ssh/id_rsa.pub 192.168.111.101:/root/.ssh/a.pub 然后执行cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys
SCP实现无需密码传输文件的更多相关文章
- Linux scp 免密码 传输文件
Linux scp 免密码 传输文件 背景介绍 最近项目是集群化部署(由 node1,node2,node3 三台 CentOS 7.4 的虚拟机构成). 但是,涉及到跨机器同步文件的问题,想通过写s ...
- Linux下用SCP无需输入密码传输文件
在Linux环境下,两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方linux主机文件的时候都需要输入密码确认. 不过通过建立信任关系,可以实现不输入密码. 这里假设A的IP ...
- linux命令(28):Linux下SCP无需输入密码传输文件,python 中scp文件
python 中scp文件:(如果下面的发送免密码已经完成的话,就直接能用下面这个) os.system('scp "%s" "%s:%s"' % (" ...
- 使用SCP在命令行传输文件
下载远程服务器上的文件 scp root@10.0.10.10:/home/user/download.txt ./download.txt 上传文件到远程服务器 scp ./upload.t ...
- shell脚本中如何使scp不输入密码即可传输文件
答:使用ssh密钥对 示例如下: 如果A机想要获取B机上的文件,那么需要将在A机上生成的公钥放置到B机上的指定位置~/.ssh/authorized_keys 问题一: 如何在A机上生成ssh密钥对? ...
- expect+scp传输文件发现文件丢失
背景 使用expect+scp去跨机器传输文件,(别问我为什么,因为公司的测试机器都是通过堡垒机的,无法绕开堡垒机,只能暂时使用这个方法了),结果发现从A传递到B的tar.gz文件大小不一致了的,当时 ...
- Python不同电脑之间传输文件实现类似scp功能不输密码
SCP vs SFTP 通过paramiko还可以传输文件,如何通过paramiko在计算机之间传输文件,通过阅读官方文档,发现有如下两种方式: sftp = paramiko.SFTPClient. ...
- scp传输文件,自动填充密码
一个偷懒的小shell, #!/usr/bin/expect #******************************************************************** ...
- SCP,scp linux2台机器之间如何传输文件
关键词:scp 转自: http://blog.csdn.net/gatieme https://blog.csdn.net/gatieme/article/details/51673229 scp传 ...
随机推荐
- HDU1429 bfs
胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- Android动画之translate(位移动画)(转)
转自:http://www.cnblogs.com/bavariama/archive/2013/01/29/2881225.html 上一篇文章讲了 Android的左右滑动切换,实现过程是非常简单 ...
- 安卓弹出对话框——AlertDialog(二)
在Android中,启动一个对话框有三种方式: 1.定义一个新的activity,并将其主题设置为对话框风格 2.使用AlertDialog类,并且显示它 3.使用 Android的Dialog类的子 ...
- 汇编语言实现led灯的跑马灯
led实验1.看原理图 看设备工作的原理(可能需要阅读芯片手册),看设备与cpu的连接关系 GPIO具有输入输出功能.输入:cpu想知道io引脚是高电平还是低电平那么就是输入方式输出:cpu想控制io ...
- mysql 视图示例
基本操作 建立视图 CREATE VIEW view_test(qty,price,total) AS SELECT quantity,price,quantity*price FROM t; 多表视 ...
- iOS 之 Swift 新特性
支持所有C和OC的基本类型 提供了Array 和Dictionary两个强劲的集合类型 元组 可选类型 闭包 脚本特性 类型安全
- SQL 日期筛选的两种方式
主要解决的是后一天的问题~容易漏掉最后一天~第一种方法,拼接String,第二种方法直接在最后一天加一天 第一: <if test="beginDate != null and beg ...
- js控制href内容的连接内容的变化
html: <a data-toggle="modal" href="#myModal_devices" id="check_devices&q ...
- Eclipse中javascript文件 clg 变为console.log();
Eclipse中javascript文件 clg 变为console.log(); window>preferance>JavaScript>Editor>Templates ...
- 创建第一个Android应用程序 HelloWorld
按照博客的进程,今天应该进行程序编写啦,下面让我们开写一个简单的HelloWorld程序. 提示:这里对于如何使用Eclipse创建一个Android程序就不多讲啦,不会的同学可以去查阅相关文档. 程 ...