Edited at

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

More than 3 years have 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を自動で接続できる環境を整えることができました!