ssh-config

command module
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

README

SSH Config Tool

codecov Go Report Card CodeQL Advanced Release

中文文档

SSH Config Tool is a command-line utility for managing SSH configuration files. It allows you to manage your SSH config files using more expressive YAML/JSON formats.

Features

  • Supports conversion from YAML/JSON format to standard SSH config format
  • Supports conversion from standard SSH config format to YAML/JSON format
  • Supports reading configuration from files or standard input (stdin)
  • Supports output to files or standard output (stdout)
  • Automatically detects input format (YAML/JSON/SSH Config)

Installation

Use Docker or download the binary file suitable for your system and CPU architecture from the GitHub release page.

Usage

Basic Usage
ssh-config [options] <input_file> <output_file>

Or, use Linux pipes to manipulate files:

cat input_file | ssh-config -to-yaml > output_file
Docker

Download docker image:

docker pull soulteary/ssh-config:v1.1.2
# or
docker pull ghcr.io/soulteary/ssh-config:v1.1.2

Convert file (test.yaml) in the current directory to YAML (abc.yaml):

docker run --rm -it -v `pwd`:/ssh soulteary/ssh-config:v1.1.2 ssh-config -to-yaml -src /ssh/test.yaml -dest /ssh/abc.yaml

Just want to see the conversion results:

docker run --rm -it -v `pwd`:/ssh soulteary/ssh-config:v1.1.2 ssh-config -to-yaml -src /ssh/test.yaml

If you want to use Linux pipelines, you can first enter the Docker interactive command line:

docker run --rm -it -v `pwd`:/ssh soulteary/ssh-config:v1.1.2 bash
cat /ssh/test.yaml | ssh-config -to-yaml
Options
  • -to-yaml, -to-json, -to-ssh: Specify output format (yaml/json/config), only one output format can be specified at a time.
  • -src: Specify the original configuration file or directory to read from
  • -dest: Specify the path to save the configuration file
  • -help: View program command-line help
Examples
  1. Convert YAML format to SSH config format:
ssh-config -to-ssh -src input.yaml -dest output.conf
  1. Convert SSH config format to JSON format:
ssh-config -to-json -src ~/.ssh/config -dest output.json
  1. Read from standard input, output to standard output, and save in YAML format:
cat input.conf | ssh-config -to-yaml > output.yaml

Development

Dependencies
  • Go 1.23+
Build
go build
Test
go test -v ./... -covermode=atomic -coverprofile=coverage.out && go tool cover -html=coverage.out -o coverage.html

Contributing

Issues and pull requests are welcome.

License

This project is licensed under the Apache License. See the LICENSE file for details.

Guide

Credits

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
fn

Jump to

Keyboard shortcuts

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