-
Notifications
You must be signed in to change notification settings - Fork 334
feat: SSH access for hosted instances #241
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
6161a5a
9037db7
8d70aee
26f0da5
3ccc800
4cee124
73c37c2
c848a28
cbcb395
0c042c5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -23,6 +23,7 @@ mod secrets; | |
| mod server; | ||
| mod settings; | ||
| mod skills; | ||
| mod ssh; | ||
| mod state; | ||
| mod system; | ||
| mod tasks; | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,8 +3,8 @@ | |
| use super::state::ApiState; | ||
| use super::{ | ||
| agents, bindings, channels, config, cortex, cron, ingest, links, mcp, memories, messaging, | ||
| models, opencode_proxy, projects, providers, secrets, settings, skills, system, tasks, tools, | ||
| webchat, workers, | ||
| models, opencode_proxy, projects, providers, secrets, settings, skills, ssh, system, tasks, | ||
| tools, webchat, workers, | ||
| }; | ||
|
|
||
| use axum::Json; | ||
|
|
@@ -242,6 +242,11 @@ pub async fn start_http_server( | |
| .route("/changelog", get(settings::changelog)) | ||
| .route("/webchat/send", post(webchat::webchat_send)) | ||
| .route("/webchat/history", get(webchat::webchat_history)) | ||
| .route("/ssh/status", get(ssh::ssh_status)) | ||
| .route( | ||
| "/ssh/authorized-key", | ||
| put(ssh::set_authorized_key).delete(ssh::clear_authorized_keys), | ||
| ) | ||
|
Comment on lines
+245
to
+249
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Reject malformed public keys before exposing this endpoint. The handler behind this route ( 🤖 Prompt for AI Agents |
||
| .route("/links", get(links::list_links).post(links::create_link)) | ||
| .route( | ||
| "/links/{from}/{to}", | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Surface
ssh-statusfetch failures explicitly.If this query fails,
sshStatusstaysundefinedand the entire status card disappears. That makes “status request failed” look the same as “no status available,” which is confusing when someone is debugging why SSH will not start.💡 Suggested fix
Also applies to: 1960-1976
🤖 Prompt for AI Agents