shell脚本不用expect怎么实现输入密码
发布网友
发布时间:2022-04-23 16:33
我来回答
共4个回答
热心网友
时间:2022-04-15 02:23
10分 太少了额。。。
如果要方便、安全并且自动化最好使用 expect 。 Shell本身 不能处理 这种问题。
自己随意选择两个端口号
B 服务器 port_B
A 服务器 port_A
B 机器:
安全机制:在B机器上设置iptables 使得 端口XB只能接受 A服务器 IP 来自端口XA 的数据。
nc -l port_B > file
监听 port_B 输出到file
A 机器:
nc B_IP portB - p portA <file
读取file 从本机portA 发送到B_IP:portB
-----------
写成两个脚本
由于命令是明文传输的,可以使用md5加密数据。
B 机器上将脚本写成一个监听脚本。
我就不给你写具体的了 给你一个描述。
#!/bin/bash
tmpfile=临时文件绝对路径
OUTPUT=~/out
portA=12345
portB=99999
B_IP=192.168.1.167
while true;do
cmd="`nc -l port_B`"
#获取由B机器发送来的命令目前假设有2个命令
#如 setoutput XXXX 设置OUTPUT文件绝对路径; starttrans 开始传输
case cmd
命令是 setoutput XXXX
OUTPUT=XXXX
命令是 starttrans
nc -l port_B > "$tmpfile"
mv $tmpfile $OUTPUT
esac
done
A 服务器上写成传输脚本sendfile需要一个参数:
# sendfile filename
#!/bin/bash
filename="$1"
portA=12345
portB=99999
B_IP=192.168.1.167
echo setoutput ”$filename“|nc B_IP portB -s portA
echo starttrans|nc B_IP portB -s portA
nc B_IP portB -s portA<"$filename"
热心网友
时间:2022-04-15 03:41
似乎没有更好的方法。 不过服务器可以做成key认证免密码登录呀
热心网友
时间:2022-04-15 05:15
./autocom -c "scp ./xxxx qxu@x.x.x.x:/home/qxu/" -r "password,ACTION_SEND,yourpassword; (yes/no)?,ACTION_SEND,yes;"
参考:
https://github.com/ilovebl/autocom
热心网友
时间:2022-04-15 07:07
我为了这个问题,研究了很久,最后还是用的expect,不知道是否有其他方法,不求加分,只求同问,追问我做到最后还是没找到什么方法,还是安装了expect的插件,我可以加你个好友吧~~ 有什么问题可以请教你啊~~