SSHの後に自動的にtmuxやscreenを使いたいです。 .ss/configにいくつかのコードを書いていますが、これは役に立ちました。
# ~/.ssh/config
Match exec "[[ $(ps h o args p $PPID | wc -w) -eq 2 ]]"
RemoteCommand SESSION_NAME="debek"; tmux a -t ${SESSION_NAME} || tmux new -s ${SESSION_NAME} || screen -r ${SESSION_NAME} || screen -S ${SESSION_NAME}
RequestTTY yes
現在問題があります。私のローカルコンピュータの2番目の端末で同じサーバーに接続するには、明らかに同じセッション名「debek」が追加されます。一意のセッション名を使用してこの問題を解決できますが、切断SCREEN_NAME="debek-{RANDOM}"
して再接続しようとすると、最後のセッション名に自動的に接続するのではなく、新しいセッション名が生成されます。
この問題を解決する方法を知っていますか?
答え1
以下は、できることのいくつかです。
.ssh/configを使用する代わりに、SSHエイリアスを作成してtmuxに接続してください。その後、SSH接続時に各端末から接続するかどうかを選択できます。
ホスト名用に2つのエイリアス(/ etc / hostsまたはDNS)を作成し、一方に接続し、もう一方には接続しない場合にのみtmuxを実行するように.ssh / configを設定します。
リモートコマンドがまだ接続されていない場合にのみtmuxに接続するようにします(例:check
tmux has 2>/dev/null && [ $(tmux lsc -t$SESSION_NAME|wc -l) -eq 0 ]
または)tmux display -pt$SESSION_NAME '#{session_attached}'
。