美文网首页Shell思科DevNet
打造MacOS版“XShell”

打造MacOS版“XShell”

作者: mantou叔叔 | 来源:发表于2018-03-13 11:21 被阅读8584次

    1.背景

    XShell作为一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。作为server端开发,几乎是必备工具了。

    很多刚切换到MacOS环境下的萌新都会面临一个尴尬的问题:XShell并没有提供MacOS版本,在NetSarang(XShell的爸爸)论坛里群众们也已经向官方呐喊很多年了,却迟迟不见NetSarang有MacOS版本的消息。这对于已经使用习惯Xshell的开发同学无疑是个噩梦。

    记得我刚切到MacOS环境的时候,也是到处查有没有XShell的替代产品,更多的却看到的都是类似的回答:

    现在看看简直是觉得这些误导MacOS萌新回答都应该浸猪笼啊,MacOS自带的Terminal虽然具备ssh的功能,但是也非常不好用,根本满足不了我们高效工作的日常。

    下面开始介绍Mac终端的应该有的正确姿势。

    2. iTerm2介绍

    image

    iTerm2作为MacOS下Terminal的替代品,支持MacOS v10.10 及以上版本。作为MacOS下最好用的终端应用,Iterm2具备以下特性:

    • 分屏
      Iterm2可以把一个Tab分成多个窗口,每个窗口显示一个不同的会话。可以垂直、水平的创建任意数量的窗格。
    image
    • 标签变色
      Iterm2的标签颜色会变化,以指示该tab当前状态。当该标签有新输出的时候,标签会变成洋红色;新的输出长时间没有查看,标签会变成红色。可在设置中关掉该功能。

    • 智能选中
      在iTerm2中,双击选中,三击选中整行,四击智能选中(规则可配置),可以识别网址,引号引起的字符串,邮箱地址等。
      在iTerm2中,选中即复制。即任何选中状态的字符串都被放到了系统剪切板中。

    • 自动补齐
      iTerm2可以自动补齐命令,输入若干字符,按⌘+;弹出自动补齐窗口,列出曾经使用过的命令。

    image
    • 历史记录
      iTerm2也可以查询历史记录,按⌘+shift+h弹出历史记录窗口。
    image
    • Tab搜索
      ⌘+option+e全屏展示所有tab,并可以进行搜索。
    image
    • 高亮当前鼠标位置
      当我们一个标签页中窗口开的太多的时候,会有找不到鼠标指针的情况,按⌘+/可以高亮鼠标位置。
    image

    还有更多特性请查看iTerm2官网

    3. 打造Mac版“Xshell”

    Xshell非常的方便好用的是因为它能保存你所有的ssh登录帐号信息。MAC下并没有xshell,有些也提供这样的功能,但效果都不好。iTerm2是很好的终端,但却不能很好的支持多profiles,当要管理的机器较多时,就比较麻烦了。好在它有profiles设置,只是不能保存ssh登录帐号及密码,它还提供了加载profiles时执行外部命令的功能,因此,这里就可以使用sshpass来帮它执行。

    3.1 安装sshpass

    下载地址:http://sourceforge.net/projects/sshpass/files/

    解压后,进入sshpass目录,执行安装:

    $ ./configure
    $ make
    $ make install
    

    测试安装

    $ sshpass -h
    

    3.2 配置密码

    让sshpass使用ssh密码,需要先将密码保存在一个文件里,再通过sshpass读文件来获取密码,iTerm2就可以通过这样的命令来登录主机,密码文件很简单,取一个好名字,把密码写进去就可以了,没有别的任何东西,如,在用户目录的sshpass目录建一个名为pass的文件,里面写上主机密码:123456,文件地址为:/Users/<用户名>/sshpass/pwd/<密码文件>

    3.3 配置iTerm2

    打开iTerm2 - Preferences - Profiles

    image

    添加一个新的profile,其它没什么好配置的,主要是在General的command中选择使用command,命令就是sshpass的执行命令,如:

    /usr/local/bin/sshpass -f /Users/<用户名>/sshpass/pwd/pwd1_file ssh -p22 root@192.168.100.1
    
    
    • /usr/local/bin/sshpass是sshpass执行文件的路径,如果按默认情况安装,它肯定会出现在这个位置上

    • -f 是告诉sshpass加载文件

    • /Users/<用户名>/sshpass/pwd/pwd1_file就是要加载的文件,即前面建的密码文件

    • ssh -p22 root@192.168.100.1是说用ssh链接,端口22,root帐号和IP地址

    保存后,选择该profile,就可以实际ssh登录。只是如果是本机第一次登录,是不会成功的,因为ssh登录需要你yes确认,会写文件到hosts里,所以第一次会直接失败,再来一次或是先在终端里用ssh root@ip来登录一次,就可以了。

    这样,新建多个profile,就可以实现管理登录了。

    在实际使用过程中,iTerm配合oh-my-zsh能实现更加炫酷的功能,在后续博客中继续讲解oh-my-zsh的配置。


    参考资料:
    [1] iTerm2 Feature:
    http://www.iterm2.com/features.html

    相关文章

      网友评论

        本文标题:打造MacOS版“XShell”

        本文链接:https://www.haomeiwen.com/subject/gktzfftx.html