关于用expect运行ssh,使用-D参数……
发表于 : 2011-02-09 20:37
怎样实现用ssh -D时不用输密码、可以后台运行?
直接运行这个,会弹出“OpenSSH”提示输密码
ssh -CqTfnN -D 7070 $user@$host
在终端中运行当然也是要密码的
于是,搞了个expect脚本:
#!/usr/bin/expect -f
set user user
set host 127.0.0.1
set password password
set timeout 10
spawn ssh -CqTfnN -D 7070 $user@$host
expect "*password:*"
send "$password\r"
expect eof
无论在哪运行,ssh进程都会挂掉
……
如果把命令改为ssh -CN -D 7070 $user@$host
则只能在终端中运行,双击后点运行ssh也会挂掉
……
郁闷中……
直接运行这个,会弹出“OpenSSH”提示输密码
ssh -CqTfnN -D 7070 $user@$host
在终端中运行当然也是要密码的
于是,搞了个expect脚本:
#!/usr/bin/expect -f
set user user
set host 127.0.0.1
set password password
set timeout 10
spawn ssh -CqTfnN -D 7070 $user@$host
expect "*password:*"
send "$password\r"
expect eof
无论在哪运行,ssh进程都会挂掉

如果把命令改为ssh -CN -D 7070 $user@$host
则只能在终端中运行,双击后点运行ssh也会挂掉

郁闷中……