sshconfig

package module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 9, 2022 License: GPL-3.0 Imports: 10 Imported by: 28

README

OpenSSH config parser for golang

Go Reference Go Report Card Coverage Status

Parses the config usually found in ~/.ssh/config or /etc/ssh/ssh_config. Only Host, HostName, User, Port, IdentityFile, HostKeyAlgorithms, ProxyCommand, LocalForward, RemoteForward and DynamicForward is implemented at this point.

OpenSSH Reference.

Usage

Example usage

package main

import (
    "fmt"

    "github.com/mikkeloscar/sshconfig"
)

func main() {
    hosts, err := ParseSSHConfig("/path/to/ssh_config")
    if err != nil {
        fmt.Println(err)
    }

    for _, host := range hosts {
       fmt.Printf("Hostname: %s", host.HostName)
    }
}

LICENSE

Copyright (C) 2022 Mikkel Oscar Lyderik Larsen & Contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DynamicForward

type DynamicForward struct {
	Host string
	Port int
}

DynamicForward defines a single dynamic port forward entry

func NewDynamicForward

func NewDynamicForward(f string) (DynamicForward, error)

NewDynamicForward returns DForward object parsed from DynamicForward string

type Forward

type Forward struct {
	InHost  string
	InPort  int
	OutHost string
	OutPort int
}

Forward defines a single port forward entry

func NewForward

func NewForward(f string) (Forward, error)

NewForward returns Forward object parsed from LocalForward or RemoteForward string

type SSHHost

type SSHHost struct {
	Host              []string
	HostName          string
	User              string
	Port              int
	ProxyCommand      string
	HostKeyAlgorithms string
	IdentityFile      string
	LocalForwards     []Forward
	RemoteForwards    []Forward
	DynamicForwards   []DynamicForward
}

SSHHost defines a single host entry in a ssh config

func MustParse

func MustParse(path string) []*SSHHost

MustParse must parse the SSH config given by path or it will panic

func MustParseSSHConfig

func MustParseSSHConfig(path string) []*SSHHost

MustParseSSHConfig must parse the SSH config given by path or it will panic Deprecated: Use MustParse instead.

func Parse

func Parse(path string) ([]*SSHHost, error)

Parse parses a SSH config given by path.

func ParseFS

func ParseFS(fsys fs.FS, path string) ([]*SSHHost, error)

ParseFS parses a SSH config given by path contained in fsys.

func ParseSSHConfig

func ParseSSHConfig(path string) ([]*SSHHost, error)

ParseSSHConfig parses a SSH config given by path. Deprecated: Use Parse instead.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL