--- name: ssh_config_parse kind: function lang: go domain: infra version: "1.0.0" purity: pure signature: "func SSHConfigParse(content string) []SSHConfigEntry" description: "Parsea el contenido de un archivo ~/.ssh/config y retorna una lista de SSHConfigEntry." tags: [ssh, config, parser, remote] uses_functions: [] uses_types: [ssh_config_entry_go_infra] returns: [] returns_optional: false error_type: "" imports: [bufio, strconv, strings] params: - name: content desc: "texto completo del archivo ~/.ssh/config" output: "lista de SSHConfigEntry, uno por cada bloque Host (sin wildcards)" tested: true tests: ["parsea config con multiples hosts", "ignora comentarios y lineas vacias", "ignora hosts con wildcards", "parsea opciones extra en Options map"] test_file_path: "functions/infra/ssh_config_parse_test.go" file_path: "functions/infra/ssh_config_parse.go" --- ## Ejemplo ```go content := `Host myserver HostName 192.168.1.100 User deploy Port 2222 IdentityFile ~/.ssh/id_ed25519` entries := SSHConfigParse(content) // entries[0].Alias == "myserver" // entries[0].HostName == "192.168.1.100" ``` ## Notas Ignora bloques `Host *` y `Host 192.168.?.*` (wildcards). Soporta directivas con separador espacio o `=`. Las directivas no reconocidas se almacenan en el map `Options`.