让ssh从stdin读取密码
来源:互联网 发布:淘宝落地窗帘布 编辑:程序博客网 时间:2024/06/04 22:47
执行像ssh,scp这类secure command时,必须手工输入密码,而且它们是直接从/dev/tty而不是stdin中读取密码的,这也意味着无法通过重定向IO的方式传送密码給这些程序.
查了一下网上一般的解决方案是借助 paramiko
或 pexpect
这两个第三方库来解决的.
但安装第三方库对于不能随意访问互联网的环境来说是很麻烦的一件事情.
其实就这个应用场景来说,完全没必要用到第三方库. python自带一个名为 pty 的modual,它有一个 spawn 函数,manual中对它的描述是:
pty.spawn(argv[, master_read[, stdin_read]])
Spawn a process, and connect its controlling terminal with the current process’s standard io. This is often used to baffle programs which insist on reading from the controlling terminal.
这就好办了,我们只要创建一个名为”pty-process.py”脚本,在这个脚本中用pty.spawn调用secure command,然后再通过写入该脚本stdin的方式就可以变相地給这些secure command发送密码了.
pty-process.py脚本的实现如下:
#!/bin/env python3import ptyimport syspty.spawn(sys.argv[1:])
借助于这个pty-process.py我们可以这样执行secure command了
echo $passwd |./pty-process.py ssh $usr@$remote $command
0 0
- 让ssh从stdin读取密码
- java 从stdin中读取数据
- 【C语言】从stdin读取一行字符串的多种方法
- gmp 读取文件 stdin
- sys.stdin读取数据
- 从 stdin 读取输入的C程序示例 && python脚本调用可执行文件
- C语言从stdin读取一行字符串的几种方法
- C语言从stdin读取一行字符串的几种方法
- C语言从stdin读取一行字符串的几种方法
- 从控制台中读取密码 - C#
- stdin, stdout, stderr 从定向
- SSH证书让Putty免密码登陆Linux
- SSH证书让Putty免密码登陆Linux
- SSH连接服务器+让服务器记住密码及IP
- ssh scp 从windows免密码下载文件到linux
- linux 从A 无密码ssh 到B
- ssh 密码
- Windows上Python读取stdin出错
- 无线传感网——物理层通信技术
- 网络爬虫学习笔记——网络爬虫简介
- 【模板】线段树
- 城市合伙人官网和手机版页面总结
- HTML+CSS之CSS盒模型
- 让ssh从stdin读取密码
- js-prototype函数
- (原创)安卓传感器入门介绍
- 一起学opencv (八) 分水岭和选取segment
- UI组件:选项卡(TabHost)
- |洛谷|贪心|P1376 机器工厂
- 异型卵问题
- 排序法之冒泡排序法
- ScrollView嵌套listView