mirror of
https://github.com/hastagAB/Awesome-Python-Scripts.git
synced 2024-11-23 20:11:07 +00:00
Added an SSH host adder script, which allows you to add hosts to your ssh config file. (#76)
Co-authored-by: NinoCosmic <nikola.dokoski@cosmicdevelopment.com> Co-authored-by: Ayush Bhardwaj <classicayush@gmail.com>
This commit is contained in:
parent
587a083db6
commit
09b7c22c26
|
@ -72,6 +72,7 @@ So far, the following projects have been integrated to this repo:
|
||||||
|[IMDB TV Series Info Extractor](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/imdb_episode_ratings)|[Yash Raj Sarrof](https://github.com/yashYRS) |
|
|[IMDB TV Series Info Extractor](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/imdb_episode_ratings)|[Yash Raj Sarrof](https://github.com/yashYRS) |
|
||||||
|[PX to REM](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/PX-to-REM)|[Atthaphon Urairat](https://github.com/uatthaphon) |
|
|[PX to REM](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/PX-to-REM)|[Atthaphon Urairat](https://github.com/uatthaphon) |
|
||||||
|[Yoda-speak Translator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/speak_like_yoda)|[sonniki](https://github.com/sonniki) |
|
|[Yoda-speak Translator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/speak_like_yoda)|[sonniki](https://github.com/sonniki) |
|
||||||
|
|[SSH Host adder](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/SSH_Host_Adder)|[NinoDoko](https://github.com/NinoDoko)|
|
||||||
|[Wikipedia-Search](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Wikipedia-Search)|[Nissaar](https://github.com/Nissaar) |
|
|[Wikipedia-Search](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Wikipedia-Search)|[Nissaar](https://github.com/Nissaar) |
|
||||||
|[Instagram Video Downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/insta_video_downloader)|[Shobhit Bhosure](https://github.com/shobhit99) |
|
|[Instagram Video Downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/insta_video_downloader)|[Shobhit Bhosure](https://github.com/shobhit99) |
|
||||||
|[Medium Article Downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/medium_article_downloader)|[coolsonu39](https://github.com/coolsonu39)|
|
|[Medium Article Downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/medium_article_downloader)|[coolsonu39](https://github.com/coolsonu39)|
|
||||||
|
|
33
SSH_Host_Adder/README.md
Normal file
33
SSH_Host_Adder/README.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# SSH Host adder
|
||||||
|
|
||||||
|
This is a fairly simple script which adds hosts to an ssh config file.
|
||||||
|
SSH allows you to add hosts to a config file, so you don't have to remember ip addresses or hostnames. So if you add:
|
||||||
|
|
||||||
|
```
|
||||||
|
HOST test
|
||||||
|
HostName 192.168.80.1
|
||||||
|
User root
|
||||||
|
Port 22
|
||||||
|
```
|
||||||
|
|
||||||
|
to `~/.ssh/config`, you can just do `ssh test` instead of writing the address / user / port.
|
||||||
|
|
||||||
|
But when you constantly get new servers to ssh to, it's helpful to have a script!
|
||||||
|
|
||||||
|
## Usage:
|
||||||
|
|
||||||
|
```
|
||||||
|
./ssh_adder my_host 192.168.80.1 [--user myuser] [--port 2200]
|
||||||
|
```
|
||||||
|
|
||||||
|
`--user` and `--port` are optional and default to `root` and `22` respectively.
|
||||||
|
|
||||||
|
If you aren't using the default ssh config path, there is an argument for that as well:
|
||||||
|
|
||||||
|
```
|
||||||
|
./ssh_adder my_host 192.168.80.1 --conf /path/to/config
|
||||||
|
```
|
||||||
|
|
||||||
|
`-conf` defaults to `~/.ssh/config`
|
||||||
|
|
||||||
|
SSH configs allow you to make more complex operations, like adding different keys and whatnot, which I don't support here mostly because I haven't had a need to yet. If I get to updating my script some time, I'll update it here too.
|
8
SSH_Host_Adder/ssh_adder
Executable file
8
SSH_Host_Adder/ssh_adder
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import ssh_adder
|
||||||
|
|
||||||
|
def main():
|
||||||
|
ssh_adder.main(sys.argv)
|
||||||
|
|
36
SSH_Host_Adder/ssh_adder.py
Normal file
36
SSH_Host_Adder/ssh_adder.py
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
import argparse, os
|
||||||
|
|
||||||
|
ssh_template = """
|
||||||
|
HOST {name}
|
||||||
|
HostName {hostname}
|
||||||
|
User {user}
|
||||||
|
Port {port}
|
||||||
|
"""
|
||||||
|
|
||||||
|
def args_to_obj(args):
|
||||||
|
obj = ssh_template.format(**args)
|
||||||
|
return obj
|
||||||
|
|
||||||
|
def add_to_conf(conf, obj):
|
||||||
|
conf = os.path.expanduser(conf)
|
||||||
|
with open(conf, 'a') as f:
|
||||||
|
f.write(obj)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# create the top-level parser
|
||||||
|
parser = argparse.ArgumentParser(prog = "Adds ssh hosts to the ssh config file. Is kind of a simple script which doesn't support all the options. May update with more stuff. \nExample usage: ./ssh_adder myhost 192.168.80.1 --user someuser --port 2200 --conf /path/to/non-default/ssh/config")
|
||||||
|
|
||||||
|
# create the parser for the "a" command
|
||||||
|
parser.add_argument('name', help = "This is the name of the Host to add to the config. For instance, if you want to do `ssh somehost`, then name should be `somehost`")
|
||||||
|
parser.add_argument('hostname', help = "This is the hostname/ip address of the host. If `somehost`'s address is 192.168.80.1, then hostname=192.168.80.1")
|
||||||
|
parser.add_argument('--user', default = 'root', help="The user to connect with. Defaults to root")
|
||||||
|
parser.add_argument('--port', default = 22, type = int, help = "The port to connect to. Defaults to 22")
|
||||||
|
parser.add_argument('--conf', default = '~/.ssh/config', help = "The path to the ssh config file. Defaults to ~/.ssh/config, which is the default location. ")
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
obj = args_to_obj(args.__dict__)
|
||||||
|
add_to_conf(args.conf, obj)
|
||||||
|
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user