记于2014年04月22日 blog

之前在windows环境用得securecrt,换到mac环境之后,找不到secureCRT的破解版,每次远程登陆服务器都要重复输入主机和密码,对于懒人来说,这是难以忍受的,所以google了一个办法,记录之,找到两个方案,一个是像本地机器连接github服务器一样的私钥免密码登陆的方式,这个虽然方便,但是我厂线上服务器是禁止设置私钥的,所以这个方案没有细看了;另一个方案是在本地写一个shell自动登陆脚本,因为登陆线上机器需要先登陆到跳板机,所以跳板机直接硬编码进去了,脚本代码如下:

  #!/usr/bin/expect
    set timeout 30
    if { $argc == 2 } {
    set host [lindex $argv 0]
    set pw [lindex $argv 1]

    set TERMSERV xxx # 跳板机名
    set USER xxxx    # 登陆账号
    set PASSWORD taobao1234

    catch {spawn ssh -l $USER $TERMSERV}
    expect "*assword:*" { send "$PASSWORD\r"}

    expect "*$USER*" { send "ssh $host\r" }
    expect {
     "*password:*"
     {send "[lindex $argv 3]\r;interact "}
     "*id_dsa*"
     { send "$pw\r";interact }
    }
    }
    interact
    

由于之前没怎么写过shell脚本,主要还是实现为主,凑合看。。。

为了将脚本保存为自定义命令,新建文件/usr/bin/auto,将上述脚本保存到该文件中,然后试着调用命令,第一个参数是账户,第二个参数是密码

  auto xxxx xxxx
    

如果出现Permission denied,执行以下命令

  chmod 777 auto
    

Linux chmod +755和chmod +777 各是什么意思呢?

755 代表用户对该文件拥有读,写,执行的权限,同组其他人员拥有执行和读的权限,没有写的权限,其他用户的权限和同组人员权限一样。 777代表,user,group ,others ,都有读写和可执行权限。

在linux终端先输入ls -al,可以看到如: -rwx-r--r-- (一共10个参数) 第一个跟参数跟chmod无关,先不管. 2-4参数:属于user 5-7参数:属于group 8-10参数:属于others 接下来就简单了:r==>可读 w==>可写 x==>可执行 r=4 w=2 x=1 所以755代表 rwxr-xr-x

一切就绪,只差一个好用的终端工具了,笔者用的是iTerm

grass

如上图配置,以后就能做鼠标党了。。。。