Ich habe zwei Server. Test auf Produktion. Alle Server haben interne IP. Derzeit verwende ich einen Alias zum Anmelden:
Host pro-10
Hostname 192.168.1.10
ProxyCommand ssh production-server nc %h %p
Für jeden Server muss ich diese Regel wiederholen. Ich suche nach einem regulären Ausdruck, um dies zu tun?
Host pro-*
Hostname 192.168.1.$1
ProxyCommand ssh production-server nc %h %p
Gibt es eine Möglichkeit, dies zu tun?
ssh
ssh-tunneling
Vivek Goel
quelle
quelle
Ich glaube nicht, dass ein regulärer Ausdruck möglich ist, um die SSH-Konfiguration dynamisch einzurichten. Sie sollten jedoch in der Lage sein, eine for-Schleife in Bash zu verwenden, um die drei Zeilen in der Konfigurationsdatei für jeden Server automatisch zu erstellen. In diesem Beispiel gehe ich davon aus, dass Sie Einträge für die Server pro-75 bis pro-125 erstellen müssen.
Dadurch wird eine Liste aller Zahlen von 75 bis 125 erstellt und diese als Liste für die Schleife gespeichert. Es durchläuft dann jedes Mitglied der Liste und ersetzt $ i. Jede Zeile wird an das Ende der SSH-Benutzerkonfigurationsdatei angehängt. Schließlich habe ich die neue Zeile eingefügt, um die Konfigurationsdatei ein wenig aufzubrechen.
Wenn Sie bestimmte Werte in der Liste haben, anstatt ein zusammenhängendes Zahlensegment, erstellen Sie eine Liste manuell wie folgt:
quelle
Nein, das ist leider nicht möglich. Wie Sie wahrscheinlich bereits wissen, können Sie die
%h
Erweiterung verwenden, aber das war es auch schon.Verwenden Sie in Ihrem Fall eine
for
Schleife.Die einzige andere Option, die ich mir einfallen lassen könnte, ist, möglicherweise DNS-Einträge mit regulärem Ausdruck zu erstellen, wenn Ihr Server dies unterstützt, und diese dann zu verwenden.
quelle
mit ProxyCommand ist es möglich - weil es nur eine Reihe von Shell-Befehlen ist:
Host pro *
ProxyCommand ssh Produktionsserver nc 192.168.1.`echo "% h" | perl -pe 's / pro - //' `% p
quelle