«

shell脚本自动输入用户名和密码如何实现

时间:2024-3-10 22:14     作者:韩俊     分类: Linux


今天小编给大家分享一下shell脚本自动输入用户名和密码如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

场景:

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
";exp_continue}
      "*Permission denied*" {exit 1}
      "*password*" {send "$remotePw
";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
";exp_continue}
      "*Permission denied*" {exit 1}
      "*password*" {send "$remotePw
";exp_continue}
      "*$ " {send "
"}
    }
    expect "*$ " {send "$cmd
"}
    expect "*$ " {send "exit
"}
EOF
}

remoteCmd "ls -l"

标签: linux

热门推荐