List ~/.ssh/config hosts in the panel source dropdown
Read-only group below saved connections; hosts resolve HostName/User/ Port/IdentityFile (Include, wildcards, %-tokens) and connect on click. New ssh-agent auth kind covers hosts without a usable identity file; ProxyJump/ProxyCommand hosts are shown disabled. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,7 @@ import type {
|
||||
FileEntry,
|
||||
Result,
|
||||
SavedConnection,
|
||||
SshConfigHost,
|
||||
TransferSnapshot,
|
||||
} from "./types";
|
||||
|
||||
@@ -68,6 +69,10 @@ export type AppRPC = {
|
||||
deleteConnection: { params: { id: string }; response: Result };
|
||||
upsertFolder: { params: { folder: ConnFolder }; response: Result<{ id: string }> };
|
||||
deleteFolder: { params: { id: string }; response: Result };
|
||||
getSshConfigHosts: {
|
||||
params: Record<string, never>;
|
||||
response: Result<{ hosts: SshConfigHost[] }>;
|
||||
};
|
||||
// settings
|
||||
getSettings: {
|
||||
params: Record<string, never>;
|
||||
|
||||
+12
-1
@@ -14,7 +14,8 @@ export type Result<T = object> = ({ ok: true } & T) | { ok: false; error: string
|
||||
|
||||
export type AuthConfig =
|
||||
| { kind: "password"; password: string }
|
||||
| { kind: "key"; privateKeyPath: string; passphrase?: string };
|
||||
| { kind: "key"; privateKeyPath: string; passphrase?: string }
|
||||
| { kind: "agent" };
|
||||
|
||||
export interface ConnectionConfig {
|
||||
host: string;
|
||||
@@ -35,6 +36,16 @@ export interface ConnFolder {
|
||||
name: string;
|
||||
}
|
||||
|
||||
/** A concrete host alias resolved from ~/.ssh/config (read-only). */
|
||||
export interface SshConfigHost {
|
||||
name: string; // the Host alias as written
|
||||
hostname: string; // resolved HostName (defaults to alias)
|
||||
port: number;
|
||||
username: string;
|
||||
identityFile?: string; // first existing IdentityFile, absolute path
|
||||
unsupported?: "proxy"; // ProxyJump/ProxyCommand present — direct connect can't work
|
||||
}
|
||||
|
||||
export interface ConnectionsFile {
|
||||
version: 1;
|
||||
folders: ConnFolder[];
|
||||
|
||||
Reference in New Issue
Block a user