spawn 是 expect 的起始语句,可以理解为从此处开始 spawn 后面的语句是执行 ssh 连接 expect:当发现password:这个字符串后,在后方输入send后面的内容 send:要输入的密码 interact:执行完留在远程控制台,不加这句执行完后返回本地控制台 再举一个例子 这个例子是我真实的脚本文件(但是磨掉了密码),平时用于往我的...
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*"{...
脚本1:ssh_copy.sh 这个脚本中包含了两个方法,第一个是用于远程ssh操作,第二个是用来ssh每个节点;再下面的代码,首先使用expect实现交互式的执行auto_ssh(),然后在ssh_copy()中调用auto_ssh()实现多台主机免密,最后使用一个for循环将自动化安装脚本下发给各主机,并执行该脚本 #!/bin/bash services="host02 h...
ssh 自动输入密码连接 公司的linux服务器和交换机都是用户名和密码ssh连接的,每次连接时都要手动输入密码感觉很是麻烦如果连接时不用输入密码就方便很多了,于是网上查了下说是有三种解决方法1. 生成ssh公钥,建立和对方机器的信任关系;2. 使用expect脚本;3. 使用sshpass。个人比较喜欢使用sshpass,配上 shell脚本后...
ssh连接远程主机时候询问密码,跟su、sudo命令的默认行为一样,是不从stdin读入数据的,据称是为安全考虑,但是有时候在脚本当中确实需要无人守值的登陆。 搜索一下不难找到类似的例子,使用expect来完成密码应答: #!/bin/bash auto_login_ssh () { expect -c "set timeout -1; ...
sshpass 是一个在非交互式 ssh 会话中自动输入密码的工具。它可以直接在命令行中指定密码,因此可以用于 Shell 脚本等自动化场景。在 Red Hat 系统中,可以通过 epel-release 源安装 sshpass。 epel-release 源是 Extra Packages for Enterprise Linux (EPEL) 的缩写,是由 Fedora 社区维护的,为 RHEL 和 CentOS 提...
spawn ssh $username@$host expect { "*yes/no" {send "yes\r"; exp_continue} "*password:" {send "$password\r"; exp_continue} "$username@*" {send "mkdir zzz;mkdir aaa;exit;\r" } } #interact expect eof exit chmod +x ssh.sh ...
SSH登录的认证方式为AAA。Ping测试正常,使用Xshell工具登录交换机,输入密码后确定后又回到输入密码界面。 user-interface vty 0 4 authentication-mode aaa user privilege level 3 idle-timeout 0 0 protocol inbound all [HUAWEI] Dec 20 2023 16:56:31.736.1 Huawei SSH/7/ACCEPT:Received connection from 10....
但这并不是常规的解决方案,如果是ftp连接就没辙了,况且,你不可能为了执行某些命令去给每个你要连接的主机都手动建立ssh信任,这已经偏离了今天主题的本意,今天要说的是在脚本里自动输入密码,我们可以想象下,更优雅的方式应该是在脚本里自己配置密码,当屏幕交互需要输入时自动输入进去,要达到这样的效果就需要用到...