I am LAZY bones ? all linux

sssh 快速ssh登陆脚本

此脚本对于那些需要经常ssh登陆远程服务器的朋友应该有点用处.尤其是需要中转服务器ssh 2次以上的.

脚本功能:
将服务器IP和密码保存于文本文件中(明文保存,安全性要自己保证),方便登陆,支持多次ssh中转,支持服务器编码自动转换,支持某个用户名的通用密码.

使用方法:
最好将脚本保存在PATH变量包含的路径下,建议保存于 ~/bin 并确保此目录在 PATH 中.
编写 ~/.pass 文件,并执行 chmod 600 ~/.pass
安装 expect 包.

.pass文件的写法
1.最简单的,可以在文件中写下如下一行:

name=hostA usernameA@IP-A passwordA

就可以使用 sssh hostA 登陆此服务器了.
2.中转登陆:

name=hostA usernameA@IP-A passwordA
name-hostA=hostB usernameB@IP-B passwordB

执行 sssh hostA hostB 就相对于先登陆hostA,然后在hostA上登陆hostB
同理,理论上可以中转N次,hostA->hostB->hostC->hostD…,嘿嘿…
3.使用通用用户名的密码.
这是用于这样的例子:有N个服务器,都开通了一个通用用户名(例如:view用户,只有很低的权限),这些view用户的密码都是同一个,而且会定期同步修改.这种情况下,如果修改了view密码的话,.pass文件就要修改N个密码了,为了避免这样的麻烦,可以使用通用用户名和密码功能:

usualName view
usualPSW password-of-view
name=hostA view@IP-A
name=hostB view@IP-B
name=hostC view@IP-C

这样就可以直接用 sssh hostA , sssh hostB 登陆了.
可以看到,这里省略了第3列的密码字段.此法同样适用于多级登陆的服务器.
4.指定服务器使用的编码

usualName view
usualPSW password-of-view
name=hostA usernameA@IP-A passwordA gbk
name=hostB view@IP-B | gbk

在某行服务器的后面(第4列),加上 gbk,就可以指明该服务器使用的是gbk,登陆了以后不会出现乱码了.
如果某行使用了通用用户名和密码的话,为了不致引起混乱,密码那列需要加个 | (竖线)占位.
5.使用通用编码

usualCODING gbk

加上此行,对于没有指定编码的服务器,将默认使用gbk编码.

下载:
由于脚本贴在这里会出现半角引号变全角的状况.所以,请直接在这里下载 这里下载.

哈哈,没想到,脚本没几行,写个说明倒是一堆了…

最后修改时间: 2009年07月30日 09:59

本文章发表于: 2008年06月29日 11:18 | 所属分类:CLI软件, 精华. | 您可以在此订阅本文章的所有评论. | 您也可以发表评论, 或从您的网站trackback.

5 个评论 关于: “sssh 快速ssh登陆脚本”

  1. bones7456 : ubuntu下luit的警告解决办法. 在 2008年06月30日 13:32 说:回复

    […] 未知 Feed 出错了。Feed 可能没有正常工作。请稍后重试。 « sssh 快速ssh登陆脚本 […]

  2. bones7456 : scp代理 在 2008年07月23日 22:54 说:回复

    […] 用我写的ssh快速登陆脚本可以方便地通过跳板登陆到目标服务器,也就是 本机->hostA->hostB. 但是当有个本地文件像上传给hostB的时候,一般还是得先scp到hostA,再登陆hostA,scp到hostB,是不是必须这么麻烦呢?答案显然是不是的,不然我也不会在写这篇日志了,:) 下面就看看我的方法: 编辑 ~/.ssh/config 文件,加入以下几行 Host hostB User usernameB ProxyCommand ssh usernameA@hostA nc %h %p […]

  3. bones7456 : 解决了gentoo下的luit乱码/崩溃的问题 在 2008年10月15日 17:23 说:回复

    […] 问题的起因是这样的: 我之前的那个sssh快速登录脚本,到了gentoo下,发现就不灵了,输完命令回车,就直接出错退出了,在排除了expect的问题和ssh本身的问题以后,很快就把问题定位到了luit,luit是个用于装换终端程序编码的东东,我的sssh脚本就是靠它登录gbk的远程服务器的.但是gentoo下,却出了问题. 于是拿个gb2312编码的fcitx的config文件做了下测试,如下: $ luit -encoding gbk cat ~/.fcitx/config 段错误 而执行 luit -encoding gb2312 cat ~/.fcitx/config 出来的又是乱码.(ubuntu下不管是gbk还是gb2312都是正常输出的.) […]

  4. 大通 在 2009年08月18日 22:14 说:回复

    不错,说明要多余代码 哈哈

  5. muxueqz 在 2009年09月28日 07:47 说:回复

    呵呵,Debian更新后用不了了,把#!/bin/sh改成#!/bin/bash就好了。骨头兄,你看着办吧。(某人窃笑中)

发表评论