repositorypackage
1.2.0
Repository: https://github.com/soulteary/ssh-config.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
# README
SSH Config Tool

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
- Convert YAML format to SSH config format:
ssh-config -to-ssh -src input.yaml -dest output.conf
- Convert SSH config format to JSON format:
ssh-config -to-json -src ~/.ssh/config -dest output.json
- 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
- Useful OpenSSH software
- Inspiration for the definition of configuration files