当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求一个自动输入法密码的SSH代理脚本
帖子发表于 : 2011-05-10 1:08 

注册: 2010-12-17 13:16
帖子: 130
送出感谢: 6
接收感谢: 0 次
按下边这个帖子里的方法可以在终端登陆SSH代理,但每次输入就比较麻烦了。
我现在对脚本一窍不通,哪位可以帮忙写个自动执行的脚本?
由于是有帐号、密码的SSH代理,执行“ssh -qTfnN -D 端口 用户名@远程ssh主机名”
等待几秒会要求输入密码,不知能否实现自动输入密码?

期待高手出现!!!

备:
Linux下简单的ssh代理与穿墙 « 瀚海星尘
http://vastars.info/linux/linux-proxy.html


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求一个自动输入法密码的SSH代理脚本
帖子发表于 : 2011-05-10 1:22 
头像

注册: 2009-04-11 23:46
帖子: 4131
系统: Arch Linux
送出感谢: 11
接收感谢: 124
Google expect ssh


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求一个自动输入法密码的SSH代理脚本
帖子发表于 : 2011-05-10 7:25 
头像

注册: 2009-01-11 16:05
帖子: 301
送出感谢: 2
接收感谢: 11
引用:
免密码ssh登陆设置

1. 在本地机器执行
ssh-keygen -t rsa
过程中一路回车。

2.将生成的.ssh/id_rsa.pub文件中的内容复制到目标机的
.ssh/authorized_keys
文件中(若没有则创建)。一般用scp命令.

3.登陆到目标机器就不需要输入密码了。


免密码ssh登陆设置


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求一个自动输入法密码的SSH代理脚本
帖子发表于 : 2011-05-10 11:11 

注册: 2010-12-17 13:16
帖子: 130
送出感谢: 6
接收感谢: 0 次
回2楼
感谢!
找到一个方法 在3楼
Expect with SSH - Ubuntu Forums
http://ubuntuforums.org/showthread.php?t=220139

回3楼
那SSH服务器不是我的,是搜来的。谢谢


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求一个自动输入法密码的SSH代理脚本
帖子发表于 : 2011-05-12 10:49 

注册: 2010-04-29 22:00
帖子: 61
系统: Gentoo Linux ~amd64
送出感谢: 0 次
接收感谢: 6
spawn ssh 开头的那行根据需要修改

代码:
#!/bin/sh
# -*- tcl -*-
# the next line won't be executed by tclsh \
exec tclsh $0

package require Expect

if {[fork] != 0} exit
disconnect

spawn ssh -o ServerAliveInterval=30 -CfND 9999 localhost
expect "assword:" {send "1\r"}
expect


_________________
網站
配置


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求一个自动输入法密码的SSH代理脚本
帖子发表于 : 2011-05-12 18:08 

注册: 2010-12-17 13:16
帖子: 130
送出感谢: 6
接收感谢: 0 次
MaskRay 写道:
spawn ssh 开头的那行根据需要修改

代码:
#!/bin/sh
# -*- tcl -*-
# the next line won't be executed by tclsh \
exec tclsh $0

package require Expect

if {[fork] != 0} exit
disconnect

spawn ssh -o ServerAliveInterval=30 -CfND 9999 localhost
expect "assword:" {send "1\r"}
expect


比如说有个提供 SSH 服务器,IP:123.123.123.123 端口:22
需要帐号密码才能登陆使用 帐号:abc 密码:456
还有,我用终端登陆时有时会提示 ……(yes/no?)

你看从 spawn 开始部分这样修改对吗?

spawn ssh -o ServerAliveInterval=30 -CfND 9999 abc@123.123.123.123
expect "assword:" {send "456\r"}
expect "(yes/no)?" {send "yes\r"}

另,如果SSH服务器的端口不是默认的22,是66,那又该怎么写?


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 求一个自动输入法密码的SSH代理脚本
帖子发表于 : 2011-05-12 20:28 

注册: 2010-04-29 22:00
帖子: 61
系统: Gentoo Linux ~amd64
送出感谢: 0 次
接收感谢: 6
忘记考虑 (yes/no) 了

spawn ssh -o ServerAliveInterval=30 -p 66 -CfND 9999 abc@123.123.123.123


_________________
網站
配置


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 求一个自动输入法密码的SSH代理脚本
帖子发表于 : 2011-05-13 9:01 

注册: 2010-12-17 13:16
帖子: 130
送出感谢: 6
接收感谢: 0 次
回7楼
代码:
#!/bin/sh
# -*- tcl -*-
# the next line won't be executed by tclsh \
exec tclsh $0

package require Expect

if {[fork] != 0} exit
disconnect

spawn ssh -o ServerAliveInterval=30 -CfND 9999 abc@123.123.123.123
expect "assword:" {send "456\r"}
expect "(yes/no)?" {send "yes\r"}

运行这个没有启动 SSH
在终端运行提示 bash: 在未预料的“US”附近出现语法错误


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 求一个自动输入法密码的SSH代理脚本
帖子发表于 : 2011-05-13 12:37 

注册: 2010-04-29 22:00
帖子: 61
系统: Gentoo Linux ~amd64
送出感谢: 0 次
接收感谢: 6
代码:
#!/bin/sh
# -*- tcl -*- \
exec tclsh $0

package require Expect

if [fork] exit
disconnect

spawn ssh -o ServerAliveInterval=30 -CfND 9999 localhost
expect {
    "(yes/no)\\?" {send "yes\r"; exp_continue}
    "assword:" {send "1\r"}
}
expect


_________________
網站
配置


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译