spawn 是 expect 的起始语句,可以理解为从此处开始 spawn 后面的语句是执行 ssh 连接 expect:当发现password:这个字符串后,在后方输入send后面的内容 send:要输入的密码 interact:执行完留在远程控制台,不加这句执行完后返回本地控制台 再举一个例子 这个例子是我真实的脚本文件(但是磨掉了密码),平时用于往我的...
所以实现sudo自动输入密码的脚本如下:其中zjk123为密码 echo 'zjk123' | sudo -S cp file1 /etc/hosts 实现自动修改密码的脚本写法如下: echo 'password' | passwd -stdin username 第三种: expect:上面介绍的两种方法前提条件是指令有参数来设定密码输入方式,像ssh指令就没有这样的参数,第三种交互方式就派上...
shell脚本中,scp和ssh连接时,自动输入用户名和密码。 解决方案: 例: #!/bin/bashremoteIp=IP remoteUser=用户名 remotePw=密码 function download(){ remoteFile=$1 localDir=$2 expect << EOF set timeout1200; spawn scp -r -p $remoteUser@$remoteIp:"$remoteFile""$localDir"expect{"*yes/no*"{...
只需要两行简单的命令即可搞定,但这并不是常规的解决方案,如果是ftp连接就没辙了,况且,你不可能为了执行某些命令去给每个你要连接的主机都手动建立ssh信任,这已经偏离了今天主题的本意,今天要说的是在脚本里自动输入密码,我们可以想象下,更优雅的方式应该是在脚本里自己配置密码,当屏幕交互需要输入时自动输入进去...
chmod +x ssh.sh ./ssh.sh 127.0.0.1 root 123456 注意 第一行定要写这句话,否则会报spawn: command not found #!/usr/tcl/bin/expect:使用expect来解释该脚本; 这个脚本和shell脚本部分指令不兼容.注意分开写 这3个必须要有,否则他一登录就退出掉了,不会执行mkdir的内容。
实现自动的ssh登录: /usr/bin/expect <<EOF spawn ssh nathan@10.19.208.102 expect "password:" send "passwd\n" expect eof EOF 然而登录了之后并没有用,需要写一些执行的逻辑,人手动敲命令无法实现,而且这个是是expect脚本,和shell script还是有本质的区别的。这种应该是我的写法不对,果断换了另外一种写法。
expect:expect命令用于等候一个相匹配的输出,一旦匹配就执行后面的动作。 send:一般是expect中的动作命令,向进程发送输入内容。 interact:运行表示将控制权交给用户,与spawn生成的进程进行交互。 四、执行结果: 执行shell脚本, 自动执行ssh连接服务器ip,并输入用户密码,登录成功。
51CTO博客已为您找到关于shell ssh连接自动输入密码的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及shell ssh连接自动输入密码问答内容。更多shell ssh连接自动输入密码相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
ssh连接远程主机时候询问密码,跟su、sudo命令的默认行为一样,是不从stdin读入数据的,据称是为安全考虑,但是有时候在脚本当中确实需要无人守值的登陆。 搜索一下不难找到类似的例子,使用expect来完成密码应答: #!/bin/bash auto_login_ssh () { expect -c "set timeout -1; ...