diff --git a/clanServices/sshd/README.md b/clanServices/sshd/README.md new file mode 100644 index 000000000..0535da100 --- /dev/null +++ b/clanServices/sshd/README.md @@ -0,0 +1,36 @@ +The `sshd` Clan service manages SSH to make it easy to securely access your machines over the internet. The service uses `vars` to store the SSH host keys for each machine to ensure they remain stable across deployments. + +`sshd` also generates SSH certificates for both servers and clients allowing for certificate-based authentication for SSH. + +The service also disables password-based authentication over SSH, to access your machines you'll need to use public key authentication or certificate-based authentication. + +## Usage + +```nix +{ + inventory.instances = { + # By default this service only generates ed25519 host keys + sshd-basic = { + module = { + name = "sshd"; + input = "clan-core"; + }; + roles.server.tags.all = { }; + roles.client.tags.all = { }; + }; + + # Also generate RSA host keys for all servers + sshd-with-rsa = { + module = { + name = "sshd"; + input = "clan-core"; + }; + roles.server.tags.all = { }; + roles.server.settings = { + hostKeys.rsa.enable = true; + }; + roles.client.tags.all = { }; + }; + }; +} +``` diff --git a/clanServices/sshd/default.nix b/clanServices/sshd/default.nix index 9cb878db2..b4799b917 100644 --- a/clanServices/sshd/default.nix +++ b/clanServices/sshd/default.nix @@ -2,7 +2,7 @@ { _class = "clan.service"; manifest.name = "clan-core/sshd"; - manifest.description = "Enables secure remote access to the machine over ssh."; + manifest.description = "Enables secure remote access to the machine over SSH"; manifest.categories = [ "System" "Network"