打造MacOS版“XShell”

1.背景

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

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

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

如今看看简直是以为这些误导MacOS萌新回答都应该浸猪笼啊,MacOS自带的Terminal虽然具有ssh的功能,可是也很是很差用,根本知足不了咱们高效工做的平常。安全

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

2. iTerm2介绍

image

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

  • 分屏
    Iterm2能够把一个Tab分红多个窗口,每一个窗口显示一个不一样的会话。能够垂直、水平的建立任意数量的窗格。测试

  • 标签变色
    Iterm2的标签颜色会变化,以指示该tab当前状态。当该标签有新输出的时候,标签会变成洋红色;新的输出长时间没有查看,标签会变成红色。可在设置中关掉该功能。.net

  • 智能选中
    在iTerm2中,双击选中,三击选中整行,四击智能选中(规则可配置),能够识别网址,引号引发的字符串,邮箱地址等。指针

在iTerm2中,选中即复制。即任何选中状态的字符串都被放到了系统剪切板中。code

  • 自动补齐
    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

相关文章
相关标签/搜索