scp无密码访问scp -i
网上搜索,可以发现大概有以下情况
1.使用expect交互
2.sshpass
但因为他们都需要安装第三方的软件,不适合我们这样的场景,我们很多时间是绝不允许安装其他软件在客户机上的.
我的场景是在本地有一个程序专门用来处理其他机器传过来的日志文件,其他机器之前使用nfs服务挂载本地的目录到本地,然后再复制过来.
现在不使用上述方法,我想到的方法如下:
1.使用curl命令来上传文件,暂时没有测试能否配合hdfs webhdfs 来完成
2.在本地机创建一个低权限的用户,然后把公共复制文件的目录权限给它一个写权限,然后生成ssh密钥.
3.在收集日志的机器中,把上述生成的私钥配置成变量,然后收集完日志后,把它生成到一个临时文件,
一定把这个文件的权限定为600,然后scp -i privatekey.file file user@machine:/path
即可完成数据的传送.
根据我原来的设计,主程序会主动发现生成的新文件,然后通知工作线程去处理.
但它一开始会忽略以.开头的文件,其实linux系统本身也把以.开头的文件默认为隐藏文件.
我的示例文件如下,先复制过去的时候生成一个.开头的文件,然后通过ssh命令修改文件不为开头的,为了显示效果,我没有使用mv,使用了cp.
#!/bin/bash basedir=$(cd `dirname $0`;pwd)
logfile=$basedir/test.txt echo "I am tester write something" >$logfile cat <<EOF >$basedir/aops.pf
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA3At/btU0vMsPoIlvn4KcPFnVxInTib5BQ01mqcfiL7S8gyNt
VMFIcjpI6lbEPUoVKPKVghXrdc+/oCVopci9VbEevnzon3NyMGcuwPAxakmnsNiM
+kVDbwjAus7bmpTUBDH5LAAWCPH//1OB5cEAo3QUrg79A5cAfGyAreBCBhlphnDb
27nTyK7IXaC1e6R8qN28KZ9L77Ew+xUbBKh6TeCn55WsR4pXAfq0meK1r4L0cHoy
IhS0DmnTRm6dF31VNAUyLhazqqPsKksDhMd2Wi1tWOIT2xjJACFz6rn3g9jH4BDZ
UIYzpvet8G085fSmxD4b1zAYyfGWTQnpCUYv5wIBIwKCAQEAilBeurHmoo5EVkfC
gYVMQzEnSFaiOVMEc3J7C6I2ZyEmCUl37CG4glCFmpzwYQn+rAYyF0D6Z09igeug
3TxZwNW7ja2ZiMw5Jb0zVLQ8UXAgQ0ZJ/GYNITizqJ9INUebNdZE2dQrG5DMzGBg
R0YdqJIboJu0+vEzgWjF6aLnrA7OR49Gg8vXnfBhCl3wnhhPcbVwTMy/JR0fYMG2
XXCMnPEowBC3F570OxxrjfKOAukqjveUWbel7uYSFWmePDO4C0EkpmeYvgvpmI/m
lQ6sP3yHZKrtmKk/93yxImzj6u3puJhO08eXo/r7815l6kQK2qho+cdIGjsYi83Z
/Rsd+wKBgQD7+eU1oyHEJ/vo94ry1a+aVtoakC9kDE9As776RyLHalYIZfOgDCx8
y1L3F8n42aQpJFAj+7wYfIquk6K3LgFBCPGz7JetjG4x9eE35XsnTkGcNo2QBNtw
UUoS4WNFfuUdtNasWTueFR9relf90bBtLZR0AN+H3jhekWBGprPw0wKBgQDfjxBw
OF9nJW6iG2kJqnEeHR0pH0Fx+crhRK2V4wzTL63erSpdT/g+ZEBYN4s3/8jwUXGi
I0ATlc42eXVS5sy1MHGsrSAHe3/d2Pk54LT3Mo5uGXMhHY0tGXm7mGOkg5BwhY2v
jxiv9bGxoXNuZWOcryld69lYZObWgCf2IVt4HQKBgQCsyJ0sGBcna9/wNLcM6kyH
Fvv09SfPk2mLc/Crnn4/mV+QuvAzO4w4UOhu672x9FNPaVuGY3mqZAdTI2hDGDtf
y55sv33zWPsa8b8Bwe4MUuspSfqr5hLQrMUUQse6oCgUXr8XGJ3ovgbqnQkjE3Gp
8157blAipwIU9fjf/UgwGwKBgAzGWLX0l7zAT3b6QIQ1oBBZb2FvgBUkN3qWNc4M
+WsnS8OU3dlySLMbq+fIqN6g5ukpObF+W27VXD2gilyCN5VTObIYhXzFOoG0oIb2
5cT7kxw79/NDhGj6JDaa/mEsFuHbvvQWzjXwyFNLDekNG6KNqpenE7vogjgklJG4
w2XzAoGAOOEStVlsqR7mDF2nIeiRZQP00i/Qj4uoI5/7jkwwj95Oz/hbquF7Rcpz
JIlWBx5qBAxkax4pYIegmErEXTPG5BL8ajLMEDwyaKhzs7shxMOriYqBFHfNQnK/
ii2hq941g4wZkeRRrMUQIdZXkvCv+IqqNI9x9NQTg7TAFBoUsCM=
-----END RSA PRIVATE KEY-----
EOF chmod 600 $basedir/aops.pf scp -i $basedir/aops.pf $basedir/test.txt aops@192.168.162.136:/home/aops/test/.test.txt
ssh -i $basedir/aops.pf aops@192.168.162.136 "cp /home/aops/test/.test.txt /home/aops/test/test.txt" rm -f $basedir/test.txt rm -f aops.pf
scp无密码访问scp -i的更多相关文章
- linux ssh scp无密码登录
一. 应用场景 假如你Linux Client是客户端, Server为服务器,用户名为user.现在要配置从Client到Server的无密码SSH登录或者无密码的scp拷贝. 例如客户端Clien ...
- [linux] scp无密码拷贝
源服务器为s,ip为111.111.111.112. 目标服务器为d, ip为111.111.111.111 1>在源服务器新建用户 test_s, useradd test_s -g user ...
- ssh key scp命令 scp无密码传输
ssh ~/.ssh/目录下通常有个文件 [root@user .ssh]# ll 总用量 16 -rw-------. 1 root root 552 11月 16 02:48 authorized ...
- Linux服务器SSH无密码访问
1.编辑Hosts文件: [root@yqtrack-elk01 /]# vim /etc/hosts
- SSH 无密码访问其它机器 和 Windows 上 putty 无密码访问 Linux 机器
1. 从一台 Linux 机器(ubuntu1)上无密码访问其它机器(ubuntu2) (1)登录 ubuntu1 并切换到用户比如 s1 (2)运行 ssh-keygen -t rsa (3)运行c ...
- 实现liunx之间无密码访问——ssh密匙
环境描述 两台linux服务器 172.16.1.22[client],172.16.1.33[server],想要实现client服务器ssh无密码访问server服务器. 使用技术 linux 的 ...
- ssh无密码访问设置(ssh-keygen 的详解)
[原文链接]http://blog.csdn.net/wh_19910525/article/details/7433164 为了让两个linux机器之间使用ssh不需要用户名和密码.所以采用了数字签 ...
- Linux配置本地无密码访问
本机配置无密码访问基本操作步骤: 1.ssh-keygen (效果同ssh-keygen -t rsa 一样,也可以ssh-keygen -t dsa) 2.ssh-copy-id -i ~/.ssh ...
- 【转】linux之cp/scp命令+scp命令详解
linux之cp/scp命令+scp命令详解 名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... dire ...
随机推荐
- nib文件的默认搜索规则
if you do not specify a nib name, and do not override the loadView method in your custom subclass, t ...
- char[]与TCHAR[]互相转换引发的一个问题!
软件的一个驱动由于开发的年代比较久一些,使用的是非Unicode编码,而当前新的软件使用的是Unicode编码,于是将非Unicode驱动用于Unicode软件上时,就出现了问题! 问题就出现在非 ...
- 编程之美 最长递增子序列 LIS
1. O(N*logN) 解法 先对序列排序, 然后寻找两个序列的最长公共子序列 2. O(N*N) 的动态规划解法 令 LIST[i] 表示以 i 为结尾的最长子序列的长度, 那么 LIST[J] ...
- leetcode -- Balanced Binary Tree TODO
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- Linux命令之乐--rename
用来修改文件名.重命名文件,批量重命名文件rename是最好的选择. 用法:rename from to files... [root@Director test]# ls a_01 a_02 [ro ...
- PagerAdapter 普通写法
1,viewPagre的普通写法 public ImagePagerAdapter(Context context, List<Photo> imgList) { this.mContex ...
- [Jenkins] 解决 Gradle 编译包含 SVG Drawable 出现异常
异常信息 java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of th ...
- 160317(二)、按sort排序,sort为空的在后面
按sort排序,sort为空的在后面 select * from 表名 order by (case when sort is null or sort='' then 1 else 0 end),s ...
- bootstrap datetimepicker 日期插件超详细使用方法
日期时间选择器 目前,bootstrap有两种日历.datepicker和datetimepicker,后者是前者的拓展. Bootstrap日期和时间组件: 使用示例: 从左到右依次是十年视图.年视 ...
- Centos7.0配置MySQL主从服务器
主服务器:192.168.186.131 从服务器:192.168.186.133 主从服务器mysql版本尽量保持一致,安装步骤请阅mysql安装步骤 一.修改主服务器配置文件 # vi /et ...