Mobaxterm セッションを SSH 構成形式または YAML/JSON に変換するにはどうすればいいですか?

Mobaxterm セッションを SSH 構成形式または YAML/JSON に変換するにはどうすればいいですか?

私は Mobaxterm を使用しており、多数のセッションがあるため、すべてを手動で次のような SSH 構成形式に変換することはできません。

モバックスターム

K8s-TEST - [127.0.0.1]=#109#0%127.0.0.1%22%tinnd%%-1%-1%%%22%%0%0%0%_ProfileDir_\secret\tinnd.ssh\tinnd.ppk%%-1%0%0%0%%1080%%0%0%1#Mono Nerd Font%14%0%0%0%15%248,248,242%39,40,34%255,128,0%3%-1%0%%xterm%-1%6%0,0,0%85,85,85%249,38,114%221,66,120%166,226,46%157,197,75%230,219,116%209,202,137%102,217,239%122,204,218%174,129,255%179,146,239%0,217,217%200,240,240%245,222,179%255,255,255%80%24%0%1%-1%<none>%%0#0# #-1

-> Linux SSH .ssh/config、私が気にしているのはHostname、、IPそしてport

Host K8S-TEST-MASTER-127.0.0.1
    hostname 127.0.0.1
    user tinnd
    port 22
    identityfile "/home/mint/.ssh/id_rsa"

または、可能であれば YAML/JSON を使用します。

答え1

1位 grep "tinnd.id_rsa" moba.sessions

SSHセッションをRDP、VNCなどの他のセッションから分離するために使用されます。ファイルにSSHセッションのみが含まれている場合は、これをスキップするか、変更してください。tinnd.id_rsa

2番目 awk 'match($0, /#109#0.+?(?:bad(*FAIL)|%.+%tinnd)/) { print substr($0, 1, RSTART) substr($0, RSTART+7, RLENGTH-14) }'

あなたのユーザー名を私のユーザー名に置き換えることができますティンド

3位 sed 's/\=\#/\ /g' | sed 's/\ -\ /-/g' | sed 's/\=\ \#/\ /g' | sed 's/\ \]/\]/g' | sed 's/\ \[/\[/g' | sed 's/\%/\ /g'

次に、ホスト名にスペースや特殊文字が含まれている場合は削除します。sed

4番目 awk '{ system("storm add " $1 " tinnd@" $2 ":" $3 --id_file "~/.ssh/id_rsa")}

stormssh最後に、ツールを使用してこれらのホストを.ssh/configに追加します。pip install stormssh初め

すべてを1つのコマンドに結合する

grep "tinnd.ssh" moba | awk 'match($0, /#109#0.+?(?:bad(*FAIL)|%..%tinnd)/) { print substr($0, 1, RSTART) substr($0, RSTART+7, RLENGTH-14) }' | sed 's/\=\#/\ /g' | sed 's/\ -\ /-/g' | sed 's/\=\ \#/\ /g' | sed 's/\ \]/\]/g' | sed 's/\ \[/\[/g' | sed 's/\%/\ /g' | awk '{ system("storm add " $1 " tinnd@" $2 ":" $3 --id_file "~/.ssh/id_rsa")}

この正規表現が、Windows から Linux に切り替えたい人の役に立つことを願っています。

関連情報