summaryrefslogtreecommitdiff
path: root/config/ssh
diff options
context:
space:
mode:
Diffstat (limited to 'config/ssh')
-rw-r--r--config/ssh/config-local-example11
-rw-r--r--config/ssh/entry21
2 files changed, 32 insertions, 0 deletions
diff --git a/config/ssh/config-local-example b/config/ssh/config-local-example
new file mode 100644
index 0000000..fa2d815
--- /dev/null
+++ b/config/ssh/config-local-example
@@ -0,0 +1,11 @@
+# Example ~/.config/ssh/config-local: ssh settings for one host only.
+#
+# Not linked and never synced -- write it by hand where it is wanted. It is read
+# after ~/.config/ssh/config-fleet and before the shared defaults; see
+# config/ssh/entry.
+
+Include ~/.config/colima/ssh_config
+
+ServerAliveCountMax 18
+ServerAliveInterval 5
+ForwardAgent no
diff --git a/config/ssh/entry b/config/ssh/entry
new file mode 100644
index 0000000..e1b6994
--- /dev/null
+++ b/config/ssh/entry
@@ -0,0 +1,21 @@
+# ~/.ssh/config on every host, linked there by link/ssh.sh.
+#
+# It configures no hosts of its own. It only fixes the order the pieces are read
+# in, which matters because ssh keeps the FIRST value it obtains for a keyword:
+#
+# 1. ~/.config/ssh/config-fleet Host blocks another layer links in, shared by
+# a set of machines. First, so host-key pinning
+# there cannot be undone by anything read after
+# it.
+# 2. ~/.config/ssh/config-local This host only; not in any repo, never
+# synced. See config/ssh/config-local-example.
+# 3. Shared defaults, below Last, so either of the above can override them.
+#
+# Both includes are optional: ssh skips an Include that matches no file, so on a
+# machine with neither this file configures nothing at all. No key is named
+# anywhere; ssh's default ~/.ssh/id_ed25519 is whatever that machine installs.
+
+Include ~/.config/ssh/config-fleet
+Include ~/.config/ssh/config-local
+
+# Shared defaults for every host go here, under `Host *`. There are none yet.