分页: 1 / 1

关于用expect运行ssh,使用-D参数……

发表于 : 2011-02-09 20:37
acrsgdw
怎样实现用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进程都会挂掉 :em20 ……
如果把命令改为ssh -CN -D 7070 $user@$host
则只能在终端中运行,双击后点运行ssh也会挂掉 :em20 ……
郁闷中……

Re: 关于用expect运行ssh,使用-D参数……

发表于 : 2011-02-09 21:15
我就是我2

Re: 关于用expect运行ssh,使用-D参数……

发表于 : 2011-02-10 14:32
acrsgdw
搞成啦~ :em11
感谢大家的帮助,现在把这个简单的脚本贴出来: :em11

代码: 全选

#!/usr/bin/expect -f 
set user 账户
set host 服务器
set password 密码
set timeout -1

spawn ssh -CTnN -D 7070 $user@$host
expect "*password:*"

send "$password\r"
expect eof

Re: 关于用expect运行ssh,使用-D参数……

发表于 : 2011-05-13 11:53
MaskRay
acrsgdw 写了:搞成啦~ :em11
感谢大家的帮助,现在把这个简单的脚本贴出来: :em11

代码: 全选

#!/usr/bin/expect -f 
set user 账户
set host 服务器
set password 密码
set timeout -1

spawn ssh -CTnN -D 7070 $user@$host
expect "*password:*"

send "$password\r"
expect eof
这就占一个终端了,加个 -f 吧

Re: 关于用expect运行ssh,使用-D参数……

发表于 : 2011-07-09 20:53
acrsgdw
MaskRay 写了: 这就占一个终端了,加个 -f 吧
我的意思是,这样可以想关掉哪个隧道就关掉哪个隧道~