Mac OS Xで複数のSSHセッションを簡単に管理する方法


9

私の次の仕事では、SSHアクセスで多くのサーバーを処理します。それは、ほとんどのホストで異なるユーザー名を持つ〜100-120ホストのようになり、各ホストにあるユーザー名は言うまでもなく、各ホストのドメイン名を覚えていないと思います。

Mac OS X(Lion推奨)のツールを使用して、各ホストのセッションを定義し(セッションではユーザー名といくつかのsshオプションを意味します)、そのようなセッションのリストを表示し、クリック/選択で自動的に接続しますか?

回答:


6

SSHデータを管理する、または人々が管理するのを見た2つの方法があります。

良い 'ole、コマンドライン、プレーンテキスト、ssh_configファイル。

configinside というファイルを作成します~/.ssh。グローバルパラメータは、ホスト宣言の上に置くことで指定できます。MacPortsを使い始めたとき、接続時に自動的に使用するデフォルトのSSH秘密鍵を明示的に定義する必要がありました。

IdentityFile ~/.ssh/id_rsa

ホストのカスタムルールを定義すると(ワイルドカードとして*を使用することもできます)、次のようになります。

Host prod-*
  User jason
  Port 2222
  LocalForward 5901 localhost:5901
  IdentityFile ~/.ssh/work-id_rsa

次に、ssh prod-scriptたとえば実行すると、残りのすべてのルールが自動的に適用されます。


このような面倒な方法ですべてのものを手動で管理したくない多くの人は、すぐにJellyfiSSHを見つけます。(Mac App Store Link。無料でダウンロードできなくなったとき、同じ人たちも非常に苛立たせられた。)

JellyfiSSHを使用すると、コマンドラインまたはssh_configファイルで指定できるほぼすべての項目にGUIアクセスできます。JellyfiSSHは、設定したオプションに基づいてコマンドを生成し、[接続]をクリックすると、コマンドラインで定義されたすべてのオプションを含む新しいターミナルウィンドウを開くため、組織目的の単なる構成ストレージアプリです。JellyfiSSH それ自体の端末アプリではありません


JellyfiSSHは私が探していたアプリのように見えます。ありがとう!
kars7e 2011

参考:man ssh_configターミナルからは、現在のシステムインストールで利用可能なOpenSSH SSHクライアント構成ファイル情報を提供します。コメントの時点で、上記の開発者リンクよりも新しいものです。
l --marc l 2016年1

5

次のようなファイルExample.commandを作成して実行可能にしchmod 755 Example.command、ファイルをダブルクリックして接続を開きます。

#!/bin/sh

exec /usr/bin/ssh username@example.com

exit 0

エイリアスを使用してコマンドラインから接続できるようにしたい場合(単語を覚えやすい)、〜/ .ssh / configで設定できます。

Host foo
HostName some.really.long.hostname.here.com
Port 22
User bigfun

その後、ホストを使用して接続できます foo

ssh foo

または、シェル構成ファイル(〜/ .bashrcまたは〜/ .zshenv)で関数を作成することもできます。

s1 () {
    ssh -v username@example.com
}

その後、コマンドラインでexample.com入力するだけで接続できs1、レベル1の冗長性が使用されます。

最後に、sshのオートコンプリートを使用することもできますが、その構文は選択したシェルによって異なります。「SSHオートコンプリートYourShellHere」の簡単なグーグルは、いくつかの例を表示するはずです。

パスフレーズとOS Xキーチェーンを使用する

IMOで最も重要なことは、パスフレーズで機能するようにsshをセットアップすることです。OS Xには、Leopard以降、優れたキーチェーン統合が組み込まれています。

ssh-keygen -t dsa -f ~/.ssh/id_dsa -C "you@exampledomain.com"

cat ~/.ssh/id_dsa.pub | ssh you@host.domain 'cat – >> ~/.ssh/authorized_keys'

(出典:http : //www.paosborne.com/blog/?p=369

次に、新しいマシンにsshすると、OS Xキーチェーンがsshパスフレーズの入力を求めます

詳細については、http: //www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/ も参照してください。記事は古いですが、Lionは同じように機能します。

Dropboxをお忘れなく

複数のマシンにログインしている場合、~/.ssh/configDropbox経由でファイルを同期できます。私は私の中に留まり~/Dropbox/etc/ssh/config.txt、それから私はします:

cd ~/.ssh
ln -s ../Dropbox/etc/ssh/config.txt config

私は〜/ .zshenvと同じことをします:

cd
ln -s Dropbox/etc/zshenv.sh .zshenv

実際、私はすべてのシェルスクリプトを〜/ Dropbox / bin /に置き、すべてのベースをカバーするために$ PATHにも追加しました。


Dropboxは、GitHubのgit /で管理したくないシェルスクリプトを保存するのに最適な場所です。その「アハ」の瞬間をスパークしてくれてありがとう、TJ!
Jason Salaz、2011

-2

Mac OS X(PuTTYベース)用のvSSHアプリを試すことができます。

  • 接続リストの管理(ホスト、ポート、ユーザー名、パスワード、キー、その他の設定)
  • PuTTYができるほとんどすべてのことができます
  • マルチタブマルチウィンドウインターフェース
  • マクロのサポート(すばやくアクセスするためのメニュー項目としてスクリプトをシェル化します)
  • iOS用のvSSHおよびSSH制御アプリとのiCloud同期(接続、マクロ、キー)

Mac AppStoreで入手できます。


Ask Differentへようこそ!自己宣伝に関するヘルプセンターを読み、製品の作成者である場合は免責事項を回答に含めてください。
grg

1
これにより、実際にクリック可能なセッションのリストがどのように許可されますか?一般的なマーケティングの一部を編集して、これを目の前の正確な質問に集中させることができれば、より良い反応が得られるでしょう。
bmike
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.