Mac
SSH

Shuttle(GUIでのssh接続)とsshpassの組み合わせがいい感じ

More than 1 year has passed since last update.

どんなことができるのか

Shuttleは、上部メニューバーにアイコンが表示されて
設定した名前をクリックするとssh接続ができるというもの。
ログインユーザのホームディレクトリ直下に.shuttle.jsonが作成され、
ここにssh接続先の名前、接続時のコマンドを記載する。Terminal.appiTermに対応。
※ SHUTTLE A simple SSH shortcut menu for OS X
http://fitztrev.github.io/shuttle/

sshpassは、sshコマンド発行時にsshpass -p 'パスワード'を前につけることで、
sshパスワードを自動的に入力してくれるもの。

私が設定したこと

まずsshpassをインストールします。
Homebrewではbrew install sshpassとしてもセキュリティ的に問題があるとの警告が出て、インストールさせてくれません。
(パスワードが平文記載だからそうなりますが...)


※ 7/8追記・修正:
コメントでご指摘いただいたとおり、
Warning: MD5 support is deprecated and will be removed in a future version.
とMD5サポート終了が表示されます。

その為、以下コマンドを実行します。

% brew install http://git.io/sshpass.rb

と外部ファイルを指定してすることで、インストールできるようになります。
※ 参照:Install Sshpass on Mac
http://lalyos.github.io/blog/2013/09/30/install-sshpass-on-mac/

また、Shuttleは上記URLよりShuttle.dmgをダウンロードして
Shuttle.appをアプリケーションフォルダへ移動。

shuttle.json(設定例)
{
    "_comments": [
        "Valid terminals include: 'Terminal.app' or 'iTerm'",
        "Hosts will also be read from your ~/.ssh/config or /etc/ssh_config file, if available",
        "For more information on how to configure, please see http://fitztrev.github.io/shuttle/"
    ],
    "terminal": "Terminal.app",
    "launch_at_login": false,
    "show_ssh_config_hosts": true,
    "ssh_config_ignore_hosts": [],
    "ssh_config_ignore_keywords": [],
    "hosts": [
        {
            "Work": [
                {
                    "name": "Host-A",
                    "cmd": "sshpass -p 'パスワード' ssh username@hostname"
                },
                {
                    "name": "Host-B",
                    "cmd": "sshpass -p 'パスワード' ssh -t username@remotehost 'ssh username@targethost'"
                }
            ]
        },
        {
            "Vagrant": [
                {
                    "name": "precise32",
                    "cmd": "ssh vagrant@127.0.0.1 -p 2222 -i ~/.vagrant.d/insecure_private_key"
                }
            ]
        }
    ]
}

デフォルトでvagrantなど各種設定方法が記載されています。
(Workの箇所は私が設定した内容の説明となります。)

これらを組み合わせて多段sshを自動で接続できる環境を整えることができました!