From 4260bc9a5ed1d5fad9dc0a048241752a7480568c Mon Sep 17 00:00:00 2001
From: "promptless[bot]" <179508745+promptless[bot]@users.noreply.github.com>
Date: Thu, 7 Aug 2025 13:06:53 +0000
Subject: [PATCH] Documentation updates from Promptless
---
pages/edge.mdx | 2 ++
pages/edge/configuration.mdx | 60 ++++++++++++++++++++++++++++++++++++
2 files changed, 62 insertions(+)
diff --git a/pages/edge.mdx b/pages/edge.mdx
index 8294860..5334158 100644
--- a/pages/edge.mdx
+++ b/pages/edge.mdx
@@ -43,6 +43,8 @@ Wasmer Edge has many features, and we have many more in development:
SSL certificates will automatically be provisioned and renewed for you.
- **Remote Sessions**:
Interactive remote shell environments, via [`wasmer ssh`](/edge/learn/remote-sessions).
+- **SSH Server Configuration**:
+ Configure SSH servers directly within your applications with custom user authentication, passwords, and SSH key support.
### 🛠️ Features in Development
diff --git a/pages/edge/configuration.mdx b/pages/edge/configuration.mdx
index 3bf5577..5dbc8c7 100644
--- a/pages/edge/configuration.mdx
+++ b/pages/edge/configuration.mdx
@@ -214,6 +214,66 @@ capabilities:
value: my-value
```
+#### `ssh`
+
+Configure an SSH server for your application.
+
+This allows you to enable SSH access directly to your app instances with custom user authentication.
+
+
+ This is different from `wasmer ssh` which provides remote sessions to the Edge platform. The `ssh` capability configures an SSH server within your specific application.
+
+
+```yaml filename="app.yaml" copy
+capabilities:
+ ssh:
+ enabled: true
+ users:
+ - username: admin
+ passwords:
+ - type: plain
+ password: "my-secure-password"
+ authorized_keys:
+ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... user@example.com"
+ - username: developer
+ authorized_keys:
+ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... dev@company.com"
+```
+
+##### SSH Configuration Fields
+
+- **`enabled`** (optional): Enable or disable the SSH server. Defaults to `false` if not specified.
+- **`users`** (optional): Array of SSH users with their authentication methods.
+
+##### User Configuration
+
+Each user in the `users` array can have:
+
+- **`username`** (required): The username for SSH login.
+- **`passwords`** (optional): Array of password authentication methods:
+ - `type: plain` with `password`: Plain text password (not recommended for production)
+ - `type: bcrypt` with `hash`: Bcrypt-hashed password for secure storage
+- **`authorized_keys`** (optional): Array of SSH public keys for key-based authentication.
+
+##### Security Recommendations
+
+- Use SSH key authentication (`authorized_keys`) instead of passwords when possible
+- If using passwords, prefer `bcrypt` hashed passwords over plain text
+- Limit SSH access to specific users who need it
+- Consider using strong, unique passwords or passphrases
+
+Example with bcrypt password:
+```yaml filename="app.yaml" copy
+capabilities:
+ ssh:
+ enabled: true
+ users:
+ - username: admin
+ passwords:
+ - type: bcrypt
+ hash: "$2b$12$LQv3c1yqBWVHxkd0LHAkCOYz6TtxMQJqhN8/LewdBPj/kMaZHm.S6"
+```
+
### `health_checks`
The `health_checks` field is used to check if an application is working correctly. If the healthchecks fail, edge will restart the application. It is **optional** and its an array of healtcheck objects