web-dev-qa-db-ja.com

Linux CLI Connect Manager?

CLIで実行されるLinux用の接続マネージャーを探しています。明確にするために、接続マネージャーとは、リモート接続を作成、保存、および迅速に起動できるようにするプログラムを意味します。 mRemotemRemoteNGVrdTerminalsDevolutions RDM などと同様です。接続タイプ(ssh)、宛先(IPまたはDNS)、およびSSHバージョン、ユーザー名/パスワードなどのパラメーターを定義できる必要があります。

現在、大規模なマネージャーサービスプロバイダー環境でセキュリティを強化しており、いくつかの「ホップオフ」Linuxボックスを作成する予定です。私たちのチームとレベル1のサポートがそれらのLinuxサーバーにSSHで接続し、そこから環境全体のさまざまなネットワーク機器に接続するという考え方です。一部のルーティング(VRF)が設定されているため、より安全で必要です。

理想的には、ソリューションが接続をmySQLなどに保存して、複数のマシン(ホップオフボックス)から接続の1つのライブラリに簡単にアクセスできるようにすることを望んでいます。

誰かがこのようなプログラムやプロジェクトに遭遇したことがありますか? RemmminaMonocaffePAC Manager など、Linux用のアプリをいくつか見つけましたが、それらはすべてGUIです。とにかくSSH用のCLIしか必要ないので、ホップオフボックスにVNCを入れる必要はありません。

ありがとう!

6
Mike M

〜/ .ssh/configファイルの使用はどうですか?使いやすく、保守し、他の人と共有しやすい。あなたがそれを共有する必要があるなら、それのためのGitリポジトリは完璧でしょう。

ファイルは次のようになります。

Host somename
  User username
  HostName 192.168.1.X
  Port 2222

その他のオプションについては、ssh_configを参照してください。

5
ggustafsson

これが私の.zshrcファイルからのコードです。/etc/hostsからのホスト、管理可能なリスト、および以前に接続したことがあるホスト(ssh構成に「HashKnownHosts no」が設定されている場合)がオートコンプリートされます。 'HashKnownHosts no'を設定すると、$HOME/.ssh/known_hostsファイルに既にアクセスできるユーザーが、以前に接続したシステムを見る可能性があるため、セキュリティリスクと見なされる可能性があります。これはgrmlconfigsから盗まれました。

if is42 ; then
    [[ -r ~/.ssh/known_hosts ]] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
    [[ -r /etc/hosts ]] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
else
    _ssh_hosts=()
    _etc_hosts=()
fi
hosts=(
    $(hostname)
    "$_ssh_hosts[@]"
    "$_etc_hosts[@]"
    example.com
)
zstyle ':completion:*:hosts' hosts $hosts

追加すると、すべてが魔法のように機能します。

1
xaocon

Rubyで書かれています。接続を〜/ .sshcファイルに保存するための優れたDSLがあります。

https://github.com/troydm/sshc

0
Troydm

いくつかのカスタムスクリプトを使用し、Puppetまたはgitを介してそれらを管理します。完全なカスタマイズ、パペットまたはVCSを介した管理が容易。特に、既存のソリューションにパッチを適用しようとしているわけではないので、完全に制御できるようにカスタムで行うことを強くお勧めします。

0
Chad