MacのSSHポートフォワーディングツール「autossh」と「Coccinellida」をご紹介!


はじめに

みなさんこんにちは、プロダクト開発本部の亀梨です。
普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う
統合プラットフォームの開発を担当しています。

さて、皆さんはSSHポートフォワーディングするときにどんな方法で行っていますか?
わたしはつい最近までターミナルに直接SSHコマンド

を叩いて、接続が切れたら再度コマンドを叩いてっていう超絶めんどいことをしていたのですが、
ちょっと調べてみたら自動で再接続しSSHを繋ぎっぱなしにしてくれるツールが見つかり、使ってみると大変便利だったのでここでご紹介します。

紹介その1「autossh」

まずはじめにご紹介するのはターミナルからコマンドを実行して使うCLIツールの autossh です。

インストール

Homebrewを使ってインストールします

実行方法

以下のようにコマンドを打つだけでSSH接続を維持してくれます。

オプションは以下の通りです。

  • -f : バックグラウンドで実行
  • -M : モニタポート(よく理解していないのですが、0 を指定しておけばよいようです^^;)
  • 後はいつもの。

はい、とっても簡単ですね。

紹介その2「Coccinellida」

こちらはWindowsでいうPuttyのようなGUIツールです。
こちらは設定を保存しておき、実行はマウス操作のみで行えるので、autosshよりも楽かもしれないですね。

インストール

こちらよりインストールしてください。
インストールしたZipフォルダを解凍したら、Coccinellidaアプリをアプリケーションフォルダにつっこんでおきましょう。

起動

アプリケーションフォルダもしくはDockにCoccinellidaをセットしている場合はDockから起動します
-> 上部メニューバーにてんとう虫のアイコンが現れ、これがインターフェイスとなります。

設定

Coccinellidaを起動したら、ディスプレイ上部メニューバーのてんとう虫をクリックし、「Preferences」を選択します。

Preferencesの設定画面が開いたら、上部てんとう虫マークの「Tunnels」をクリックし、
次に下部の「Add」をクリックします。

設定画面で、まずは「General」で踏み台となるサーバーの接続情報を設定する

  • Name: 任意の名前
  • Host: 踏み台サーバーのIPアドレス or ホスト名
  • Port: ポート番号(任意の番号でも可)
  • User: ユーザー名
  • Password: SSHパスワード(設定していれば)
  • Identity: SSH秘密鍵のパス

次に踏み台サーバーを経由して接続したいサーバーの情報を設定します。
-> 最後にSaveで保存

  • Type: localのまま
  • Local Port: 2022 (任意のポートでもいい)
  • Local Host: localhostのまま
  • Remote Host: 本命のサーバーのIPアドレス or ホスト名
  • Remote Port: 22 (他のポート指定がある場合はそのポート番号)

実行

Preferencesを一旦閉じ、再度上部メニューバーをクリックすると
先程登録した踏み台サーバー名が表示されるので、それをクリックすれば接続完了です。

なお、接続しても特に何もアクションが起きないため接続した感が無いですが、
左側にチェックマークが付いていれば接続されているということになります。

なお接続を終了したい時は再度メニューから接続名をクリックします。接続を終了するとチェックマークが外れるのが確認できます。

以上です。

はい、どちらもとっても簡単でしたね。
もしこういったツールをご存じなかった方は、日々の業務の休憩がてら設定してみてはいかがでしょうか。

話は変わりますが、弊社は12/28-1/3まで休みをいただいております。
皆さんはどんな年末年始を過ごしますか?わたしは絶賛連載中wのScala入門の次回記事の作成に向け
あれやこれやと試してみたいと思います。

それではよいお年を!


DACエンジニア採用情報

  関連記事

fastavroとjqでAVRO形式のファイルからデータを取得しよう

AVRO形式のファイルを取り扱いたい AVROとはApacheプロジェクトのひとつとして開発されているデータ交換形式です。 コンパクトなバイナリで高速なシリアライズ・デシリアライズが行えるため、サーバーログなどに利用されています。 弊社内での一部システムのログデータにも利用されているのですが、専用の …

Scala入門 準備編「開発環境構築」 – PHP使いからScala使いへ転身!

  はじめに みなさんこんにちは、今月入社しましたプロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 XmediaOneの開発で採用しているプログラム言語はS …

自社サービスのDocker化(後編)

こんにちは。 インフラ開発部の上田です。 前回、前編としてDockerについて書き、早半年も経ちました。 前編はこちらです 今回は後編として、以下について書いてみたいと思います。 ■複数プロセス起動 前編で書いた通り、通常のOS起動時とは異なり、コンテナ上で個別にプロセスを起動する必要があります。 …

ゼロからAngularでSPAを作ってみた(3) CI: 継続的インテグレーション編

前回までのおさらいと今回やること 前々回(はじめてのアプリ編)と前回(デプロイ・公開編)で、作成した Angular のチャットアプリを Web に公開するところまでいきました。 でも、デプロイするのに、毎回決まったコマンドを打つのって面倒ですよね。 今回は GitHub でソースコードを管理して、 …

ゼロからAngularでSPAを作ってみた(2) デプロイ・公開編

前回のおさらいと今回やること 前回(はじめてのアプリ編)では、Angular で簡単なチャットアプリを作るところまでやりました。ディレクトリ構成については説明できていなかったのですが、次のようになっています。(主なディレクトリとファイルのみ抜粋) + dist (ビルド・コンパイル後のファイルのディ …

初心者がRailsで開発 – deviseでユーザー認証設定 –

こんにちは、2年目のYukaです。 開発部所属でありながら実は、、 実際に自分で手を動かして開発する機会がなかなかありませんでした。。 しかしついに、、、 開発初心者がRailsでWebアプリの開発に挑戦します!! 今回のゴールは社内でも使用しているGoogleアカウントで簡単にログインができるよう …

クラウド電話API “Twilio”で起こされてみた

どうも、開発部のクラヴマガです。 弊社サービスも最近はAWSの様なクラウド環境でサービスを構築することが多くなりました。 そこで問題になるのが、障害などによる深夜対応・・・。 データセンターに物理サーバをおいていた頃は、データセンターから障害発生時に 電話連絡をもらっていたのですが、クラウド環境では …

x-callback-urlを使ってみた

x-callback-urlとは? iOSのアプリ間連携の仕様の一つみたいです。簡単に言うと、ディープリンクを行うためにカスタムURLスキームを利用するが、アプリ毎にバラバラな規則でURLスキームを設定するとアプリ間連携をスムーズに行うことができないため、どのような規則でURLスキームを設定するかを …

Vagrantの機能を使って開発環境の効率をあげてみた。

プラットフォーム・ワンのシステムの運用・保守担当のエンジニアです。 保守の仕事に関わると、 ユーザからのお問い合わせだったり、監視アラートによる検知から システムを調査することがあります。 ログとソースコードを見て、不具合を特定し改修する。 すぐできればカッコいいですが、 「本番環境に反映して別のエ …

Selenium × PHP でテスト自動化!【環境構築編】

はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 テスト自動化の背景 わたくしが担当するXmediaOneでは品質担保のために①コードベ …