`

ssh记住密码自动登录,clone session

阅读更多
1,安装必备软件
基本工具
$sudo apt-get install ssh-client

自动化应答工具
$sudo apt-get install expect

2,登录脚本
利用expect建立一个ssh登录自动应答脚本
$vi sshHostWithUsernameAndPassword

填入下面的内容
#!/usr/bin/expect
# This script needs one argument to(s) connect to remote server:
# host = IP Addreess of remote UNIX server, no hostname
# For example:
#  ./sshadmin 192.168.1.11 admin admin
#set Variables
set host [lrange $argv 0 0]
set username [lrange $argv 1 1]
#support to compose produce env password with static part and dynamic part
set password [lrange $argv 2 3]
spawn ssh $username@$host
expect {
#if need check hostkey, send yes
       -re ".*Are.*.*yes.*no.*" {
       send "yes\r"
       exp_continue
       #look for the password prompt
       }
       "*assword:" {
       send -- "$password\r"
       #the expect command will now return
       }
}
#using 'interact' to stop execute spawn
interact;



3,登录的alias
$vi .bash_aliases

添加
alias sshHost1="sshHostWithUsernameAndPassword yourhost yourUsername yourPassword"

然后
$. .bash_aliases
$sshHost1

就能用ssh免输入账号密码来登录服务器了
赶紧体验吧

如果有动态密码,那
$vi .bash_aliases

添加
alias sshHost2Dynamic="sshHostWithUsernameAndPassword yourhost yourUsername yourStaticPassword"
$sshHost2Dynamic yourDynamicPassword

就可以了(通过sshHostWithUsernameAndPassword的“set password [lrange $argv 2 3]”来组合)

4,clone session
是不是很羡慕secureCRT里的clone session的方式来重用同一个连接,避免第二次登录还要输入密码?其实这个就是ssh内置功能,我们只要按下面设置一下就好了。
创建文件
$vi ~/.ssh/config

在config的文件中,添加如下内容:
host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p


然后
$vi ~/.bash_aliases

添加(后面不需要密码了)
alias sshHost2DynamicClone="sshHostWithUsernameAndPassword yourhost yourUsername"
$. ~/.bash_aliases


第一次登录
$sshHost2Dynamic yourDynamicPassword

后面再登录
$sshHost2DynamicClone

就可以登录了

同时我们发现~/.ssh/目录下有master-*的sock文件,就是它记录了我们目前登录到的机器,这样的话,我们登录同样的机器就会重用同一个session了。
其他linux发行版的同学应该都可以使用,毕竟这只是个ssh的客户端配置文件。

config文件的详细介绍可以参考:

http://linux.die.net/man/5/ssh_config
分享到:
评论
2 楼 xuhuandh 2012-03-28  
vfate_linux 写道
sshHostWithUsernameAndPassword文件的代码绝对有问题,我一样复制过来的。还提示要输入密码。。怎么回事。 没看懂自动应答的脚本,要不然自己修改修改

完整格式是:
sshHostWithUsernameAndPassword yourhost yourUsername yourDynamicPassword
密码还是要输入的,只是~/.ssh/config添加session共享之后,在session有效的情况下,开新的ssh连接时输入:
sshHostWithUsernameAndPassword yourhost
就可以登陆了。
1 楼 vfate_linux 2011-12-25  
sshHostWithUsernameAndPassword文件的代码绝对有问题,我一样复制过来的。还提示要输入密码。。怎么回事。 没看懂自动应答的脚本,要不然自己修改修改

相关推荐

    zoc6.45Installer

    ZOC is a powerful terminal emulator, SSH client and telnet client, known for its outstanding user interface. It lets you access remote hosts via network (telnet/ssh), modem and more. This terminal ...

    puttytab exe

    因为我下载了那个puttytabs是.net编写的不能使用. 我就干脆自己改写了一下putty. ...所有以new session, clone session启动的sission都会被集中在一个管理中心 如果是直接运行putty的话就会另外建立一个管理中心

    puttytab 源代码

    因为我下载了那个puttytabs是.net编写的不能使用. 我就干脆自己改写了一下putty. ...所有以new session, clone session启动的sission都会被集中在一个管理中心 如果是直接运行putty的话就会另外建立一个管理中心

    epam-training-ansible

    然后,您需要将本地ssh公钥复制到“远程”无业游民的主机上,然后输入密码vagrant 。 如果仍然没有密钥,请参见ssh-keygen ssh-copy-id vagrant@192.168.111.111 检查您是否与主机连接 ansible all -m ping 然后将...

    SSH-for-IRIS-container:示例如何将SSH服务器添加到标准IRIS docker映像的示例

    系统间对象模板这是InterSystems ObjectScript Github存储库的模板。 该模板还带有一些文件,可让您立即在Docker...docker-compose up -d如何测试打开IRIS终端: $ docker-compose exec iris iris session irisUSER>wr

    rtmpdump_nicolive:http 的 rtmpdump

    rtmpdump_nicolive rtmpdump 这是什么 ... 在ubuntu的情况下,可能可以通过将/etc/X11/Xsession.options中的use-ssh-agent更改为no-use-ssh-agent并再次登录来导出。 如何使用 ******** $ rtmpdump

    wagtailapidemo:Wagtaildemo启用了API

    g示范项目 这是的演示项目。 我们不建议您使用此项目来启动您自己的网站。 该项目仅提供一些实现常见功能的示例,它不是Django或Wagtail最佳实践的范例。 如果您是Python / ... (then, within the SSH session:)

    aws-ssm-session:用于启动与浏览器和NodeJS兼容的AWS SSM会话的Javascript库

    会话管理器无需打开入站端口,维护堡垒主机或管理SSH密钥即可提供安全且可审核的实例管理。 通过会话管理器,还可以轻松地遵循需要对实例进行受控访问,严格的安全做法以及具有实例访问详细信息的完全可审核日志的...

    python入门到高级全栈工程师培训 第3期 附课件代码

    03 jquery模态对话框与clone的应用 04 jqueryCSS操作之offsets,position以及scrolltop 05 jquery事件绑定与事件委托 06 jquery动画效果 07 jquery扩展与插件 08 jquery扩展补充 09 本周作业轮播图以及思路 第45章 ...

    vagrant-base-image:构建其他项目的流浪“基地”

    只需git clone存储库并执行 Vagrant up 即可构建 vagrant 映像。 然后: $ vagrant ssh ... wait for the shell from the Vagrant box ... $ tmux-session 配置文件 在provision目录下,有各种构建Vagrant box时...

    wagtail-torchbox:Torchbox.com的Wagtail版本

    Wa上的Torchbox.com 该项目是...依存关系安装运行以下命令: git clone [the url you copied above]cd wagtail-torchboxvagrant upvagrant ssh# then, within the SSH session:./manage.py createcachetable./manage.p

    千方百计笔试题大全

    35、写clone()方法时,通常都有一行代码,是什么? 11 36、GC 是什么? 为什么要有GC? 11 37、垃圾回收的优点和原理。并考虑2 种回收机制。 11 38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有...

    java面试宝典

    35、写clone()方法时,通常都有一行代码,是什么? 11 36、GC 是什么? 为什么要有GC? 11 37、垃圾回收的优点和原理。并考虑2 种回收机制。 11 38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有...

    java面试题大全(2012版)

    9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、...

    老男孩第三期Python全栈开发视频教程 零基础系统学习Python开发视频+资料

    ├─(29) 03 python s3 day44 jquery模态对话框与clone的应用.avi ├─(30) 04 python s3 day44 jqueryCSS操作之offsets,position以及scrolltop.avi ├─(31) 05 python s3 day44 jquery事件绑定与事件委托.avi ├─...

Global site tag (gtag.js) - Google Analytics