ssh client config manager
Project description
SSH Config
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
Release history Release notifications | RSS feed
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2f39e0ef36bcccf2610803871b4a809cdf072e0e151fbd101dfed5ca0715947 |
|
MD5 | 20c7059b03aa6645f3ecd0375a591e85 |
|
BLAKE2b-256 | 20818def30de804dd3027c5e3d6862c06e8e7691907298f7166a3f008ea3d0d8 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01bef37388e8e1d733ab77dcb1263264231ce6e71000277528c57d0986dfec05 |
|
MD5 | 7dde2abcc085b2dd7c70d865e26aeaca |
|
BLAKE2b-256 | c580571abb05608a58a8a2577bb5a5d6d6c7fc06ee0fd43ef84e7460ac93de9c |