ローカルOSのフォルダに基づいてリモートでSSHを実行できるソリューション(またはzshプラグイン)はありますか? PyENVに似ています。
だからプロジェクトを開発して実行すると
cd /home/projects/ERP
ssh production
ssh development
そうすれば、覚えやすいコマンドを使用して目的のリモートホストに直接移動できますか?
ディレクトリを切り替えるときにエイリアスを作成してローカルフォルダからロードできることを知っていますが、より良い方法はありますか?
ありがとう、ドミトリー
答え1
明らかにコメントを求めるコメントを投稿するのに十分な評判がないので、ここでは推測にすぎず、不完全な場合は必要に応じて答えを編集してください。
私はそのようなプラグインを知りませんが、1つを書くことはそれほど難しくありません。あなたのユースケースは一般的ではないので、これは正しい選択かもしれません。これを行うには5つの方法があります。
/etc/ssh/ssh_config
ただし、まず、サーバーに「ホストエイリアス」を持つことが完全に可能であることに注意する必要があります~/.ssh/config
。これにより、SSH構成オプションセットに特定のホストエイリアスを簡単に割り当てることができます。
以下は例です。
Host router
Hostname 10.0.0.1
Port 222
User root
これにより、入力が入力ssh router
と同じになります。ssh [email protected] -p 222
これはおそらくほとんどのユースケースに対処します。すでにご存知の方は申し訳ありません。ここではすべての内容を扱いたかった。
固定SSHコマンドを異なる方法で解釈するためにSSHが本当に必要な場合は、入力パラメータを表示して主要なパラメータ(本番や開発など)を識別し、そのパラメータを解釈してからSSHコマンドのラッパーが必要になる可能性があります。の値に応じて、1つの可能なホスト(SSH設定で事前設定することができます)を選択します$PWD
。
これが役立つなら教えてください! ^.^
更新:指摘してくれた@fra-sanに感謝します。たくさんよりエレガントな選択! :D(少なくとも特別なケースが比較的少ない場合は、よりエレガントになります...)
単に次のことができます。
Match host production, exec ssh_match_dir
Port 5555
Hostname foodev.biz
ssh_match_dir
次のように条件が適用されることを検出した場合、PATHのどのスクリプトがステータス0で終了しますか?
#!/usr/bin/env bash
if test "$PWD" = "/home/a/git"; then
exit 0
else
exit 1
fi
man ssh_config
該当するTOKENS
セクションを確認し、特別な注意を払ってください。これには、ssh
追加の条件を追加するためにスクリプトに渡すように指示できるパラメーターに関する情報が含まれています。スクリプトにいくつかのパラメータ解析を使用して追加すると、ユースexec ssh_match_dir %h
ケースに応じて、1つのスクリプトが異なるランダム条件で各ホストを処理できるようになると思います。