GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Können Sie mehr als eine ~/.ssh/config-Datei haben?

Lösung 1:

Der ~/.ssh/config file hat keine Anweisung zum Einschließen anderer Dateien, möglicherweise im Zusammenhang mit der SSH-Prüfung auf Dateiberechtigungen.

Vorschläge dazu können ein Skript enthalten, um mehrere Änderungen entweder auf dem System oder über Eincheck-Hooks in einem Repository zusammenzufassen. Man könnte sich auch Tools wie Puppet oder Augias ansehen.

Wie auch immer Sie es angehen, Sie müssen einzelne Dateien von außerhalb der Datei zu einer einzigen Datei verketten.

$ cat ~/.ssh/config_* >> ~/.ssh/config

Hinweis: überschreiben:> gegenüber anhängen:>>

Aktualisierung Dezember 2017:

Ab 7.3p1 gibt es die Option Include. Damit können Sie Konfigurationsdateien einschließen.

Include
    Include the specified configuration file(s).  Mul‐
    tiple pathnames may be specified and each pathname
    may contain glob(3) wildcards and, for user config‐
    urations, shell-like “~” references to user home
    directories.  Files without absolute paths are
    assumed to be in ~/.ssh if included in a user con‐
    figuration file or /etc/ssh if included from the
    system configuration file.  Include directive may
    appear inside a Match or Host block to perform con‐
    ditional inclusion.

Lösung 2:

Sie können die aktuelle Konfigurationsdatei angeben, die in der ssh-Option wie folgt verwendet werden soll:

ssh -F /path/to/configfile

Scheint die einzige Möglichkeit zu sein.

Außerdem gibt es keine Möglichkeit, eine Konfiguration in eine andere einzufügen.

Lösung 3:

Beginnend mit ssh 7.3 (veröffentlicht am 1. August 2016), ein Include Direktive ist verfügbar.

Einschließen :Die angegebene(n) Konfigurationsdatei(en) einschließen. Es können mehrere Pfadnamen angegeben werden, und jeder Pfadname kann globwildcards und Shell-ähnliche „~“-Verweise auf Benutzer-Home-Verzeichnisse enthalten. Dateien ohne absolute Pfade werden in ~/.ssh angenommen . AnInclude Direktive kann innerhalb eines Match erscheinen oder Host blockieren, um die bedingte Inklusion auszuführen.

(Hier ist der Link zum behobenen Fehlerbericht, der auch den Patch enthält:https://bugzilla.mindrot.org/show_bug.cgi?id=1585#c24)

Lösung 4:

Ich persönlich benutze diese Befehle, um die ssh-Konfiguration zu kompilieren:

alias compile-ssh-config='echo -n > ~/.ssh/config && cat ~/.ssh/*.config > ~/.ssh/config'
alias ssh='compile-ssh-config && ssh'
# (This will get used by other programs depending on the ~/.ssh/config)
# (If you need you can run the compile-ssh-config command via cron etc.)

oder:

alias compile-ssh-config='echo -n > ~/.ssh/config-compilation && cat ~/.ssh/*.config > ~/.ssh/config-compilation'
alias ssh='compile-ssh-config && ssh -F ~/.ssh/config-compilation'
# (This is saver and won't over write an existing ~/.ssh/config file)

weil:

alias ssh='ssh -F <(cat .ssh/*.config)'

funktioniert bei mir nicht, Rückgabe:

ssh: Can't open user config file /dev/fd/63: Bad file descriptor

Ich hoffe, dies wird Ihnen helfen.

Lösung 5:

Ich würde auch cat config_* > config verwenden um die gesamte Konfiguration zu generieren. Aber ich würde Puppet/cfengine etc dafür nicht verwenden, wenn sie noch nicht vorhanden sind (Übrigens:warum nicht ein Konfigurationsverwaltungssystem verwenden???).

Ich würde ein Paket (deb, rpm) generieren und es in einem lokalen Repository ablegen. Und im Postinst-Skript generiert die Katze Ihre Konfiguration. Vielleicht binden Sie auch einen lokalen Ordner ein... Der Vorteil ist, dass ssh/config Updates täglich aktiviert werden, während cron-apt &Co laufen.


Linux
  1. Df sagt, ich habe 20 g mehr Speicherplatz belegt als Du. Wieso den??

  2. Ist>&- effizienter als>/dev/null?

  3. Brauche ich Swap Space, wenn ich mehr als genug RAM habe?

  4. Wie können wir ein anderes Passwort als Klartext speichern?

  5. Drucken Sie den Inhalt von mehr als einer Datei in einem Zip-Archiv

Verwenden der SSH-Konfigurationsdatei

Top 10 SSH-Funktionen, die Sie kennen MÜSSEN, um produktiver zu sein

Verwenden Sie die SSH-Konfigurationsdatei, um SSH-Verbindungen zu verschiedenen Remote-Servern zu verwalten

Was ist ein Homelab und warum sollten Sie eines haben?

Kann TCP mehr als 65535 Ports bereitstellen?

Wie binde ich den MySQL-Server an mehr als eine IP-Adresse?