shell脚本自动输入用户名和密码的实现
hnht1989 人气:0场景:
shell脚本中,scp和ssh连接时,自动输入用户名和密码。
解决方案:
例:
#!/bin/bash remoteIp=IP remoteUser=用户名 remotePw=密码 function download(){ remoteFile=$1 localDir=$2 expect << EOF set timeout 1200; spawn scp -r -p $remoteUser@$remoteIp:"$remoteFile" "$localDir" expect{ "*yes/no*" {send "yes\n";exp_continue} "*Permission denied*" {exit 1} "*password*" {send "$remotePw\n";exp_continue} "*Killed by signal 1" {exit 1} } EOF } fucntion remoteCmd(){ cmd=$1 expect << EOF set timeout 1200; spawn ssh $remoteUser@$remoteIp expect{ "*yes/no*" {send "yes\n";exp_continue} "*Permission denied*" {exit 1} "*password*" {send "$remotePw\n";exp_continue} "*\$ " {send "\n"} } expect "*\$ " {send "$cmd\n"} expect "*\$ " {send "exit\n"} EOF } remoteCmd "ls -l"
加载全部内容