Skip to main content

ssh client config manager

Project description

SSH Config

PyPI version Build Status

SSH client config file manager

What is ssh_config?

https://linux.die.net/man/5/ssh_config

Why

I don't remember all the servers I am managing. Also all servers require all different configurations to connect to it. I know ~.ssh/config can handle this kind of issue. I want it to handle this file easier.

Yes, I am not sure this is easier way to handle it. but I am trying.

Requirements

After 0.0.15, Python27 is not supported.

Python 3.6 or higher

Installation

$ pip install ssh-config

Usage

ssh-config <version>

   Usage:
       ssh-config [options] <command> [<args>...]

   Options:
       -h --help           Show this screen.
       -v --version        Show version.
       -V --verbose        Verbose output
       -f --config FILE    Specify an ssh client file [default: ~/.ssh/config]

   Commands:
       gen         Generate ssh config file
       ls          Show list of Hosts in client file
       get         Get ssh client config with Name
       add         Add new Host configuration
       update      Update host configuration
       rename      Update host configuration
       rm          Remove exist Host configuration
       import      Import Hosts from csv file to SSH Client config
       export      Export Hosts to csv/ansible format
       bastion     Bastion register/use
       ping        Send ping to selected host
       version     Show version information

Use-cases

List hosts

$ ssh-config ls
# It shows name and HostName attribute
server1: 203.0.113.76
*: None
server_cmd_1: 203.0.113.76
server_cmd_2: 203.0.113.76
server_cmd_3: 203.0.113.76
Add host
$ ssh-config add "server_cmd_4" HostName=203.0.113.77 IdentityFile="~/.ssh/cmd_id_rsa"
Update host
$ ssh-config add --update -p "server_cmd_3" IdentityFile="~/.ssh/cmd_id_rsa"
Remove host
$ ssh-config rm "server_3"

Using pattern to get list or update exist hosts

List hosts with pattern
$ ssh-config ls "server_*"
# It shows name and HostName attribute
server_cmd_1: 203.0.113.76
server_cmd_2: 203.0.113.76
server_cmd_3: 203.0.113.76
Update hosts with pattern
$ ssh-config add --update -p "server_*" IdentityFile="~/.ssh/cmd_id_rsa"

add ssh key to multiple servers

ssh-config ls --only-name | xargs -I{} ssh-copy-id -i ~/.ssh/id_rsa {}

Export ssh-config to ansible inventory ini format.

ssh-config export ansible -g linux

[linux]
server1              ansible_host=203.0.113.76       
server_cmd_1         ansible_host=203.0.113.76       
server_cmd_2         ansible_host=203.0.113.76         ansible_user=user     
server_cmd_3         ansible_host=203.0.113.76         ansible_user=user     

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ssh_config-0.1.1.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

ssh_config-0.1.1-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file ssh_config-0.1.1.tar.gz.

File metadata

  • Download URL: ssh_config-0.1.1.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for ssh_config-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f2f39e0ef36bcccf2610803871b4a809cdf072e0e151fbd101dfed5ca0715947
MD5 20c7059b03aa6645f3ecd0375a591e85
BLAKE2b-256 20818def30de804dd3027c5e3d6862c06e8e7691907298f7166a3f008ea3d0d8

See more details on using hashes here.

Provenance

File details

Details for the file ssh_config-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ssh_config-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for ssh_config-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 01bef37388e8e1d733ab77dcb1263264231ce6e71000277528c57d0986dfec05
MD5 7dde2abcc085b2dd7c70d865e26aeaca
BLAKE2b-256 c580571abb05608a58a8a2577bb5a5d6d6c7fc06ee0fd43ef84e7460ac93de9c

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page