Skip to content

Latest commit

 

History

History
194 lines (128 loc) · 4.84 KB

File metadata and controls

194 lines (128 loc) · 4.84 KB

bitssh

GitHub issues GitHub forks GitHub stars GitHub license Open Source Love svg1 PRs Welcome contributions welcome GitHub contributors

A New and Modern SSH connector written in Python.

Terminal user interface for SSH. It uses ~/.ssh/config to list and connect to hosts.

Demo

Installation

Install bitssh with docker

  docker run --rm -it -v ~/.ssh:/root/.ssh mrsunglasses/bitssh:latest	

Install bitssh with uvx (recommended)

  uvx bitssh

Install bitssh with uv tool (recommended)

  uv tool install bitssh

Install bitssh with pip (no recommended)

  pip3 install bitssh

  bitssh

Install from source

  git clone https://github.com/Mr-Sunglasses/bitssh

  cd bitssh

  python3 -m pip3 install -e .

  bitssh

Usage

Connecting to a Host

Simply run bitssh to see all your SSH hosts and connect to one:

bitssh

This displays a table of all hosts from ~/.ssh/config and launches a fuzzy search prompt to select a host. Once selected, bitssh opens an SSH connection to that host.

Check Version

bitssh -v
bitssh --version

Adding a Host

Interactive mode (guided prompts):

bitssh add

Non-interactive mode (CLI flags):

bitssh add --host myserver --hostname 192.168.1.1
bitssh add --host myserver --hostname 192.168.1.1 --user root --port 2222
bitssh add --host myserver --hostname 192.168.1.1 --user admin --identity-file ~/.ssh/id_rsa
Flag Description
--host Alias for the SSH connection (required)
--hostname IP address or domain (required)
--user Login username
--port SSH port (default: 22)
--identity-file Path to private key file

Removing a Host

Interactive mode (multi-select prompt):

bitssh remove

Non-interactive mode (specify one or more hosts):

bitssh remove --host myserver
bitssh remove --host srv1 srv2

SSH Config Reference

bitssh reads hosts from ~/.ssh/config. Example configuration:

Host myserver
    Hostname 192.168.1.1
    User admin
    Port 22

Host production
    Hostname ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/aws-key.pem

See the OpenBSD ssh_config reference for all available options.

Troubleshooting

[...]/.ssh/config: no such file or directory

  • Check if you have ~/.ssh/config file
  • If you don't, create it with touch ~/.ssh/config

Here's a sample ~/.ssh/config file that is recognized by bitssh:

Host abc
	Hostname xxx.xx.xx.xx
	User test1
	port 22

Host pqr
	Hostname ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com
	User ubuntu
	port 22

Host wxy
	Hostname xxx.xx.xxx.xx
	User test2
	port 22

You can check the OpenBSD ssh_config reference for more information on how to setup ~/.ssh/config.

Contributing

Contributions are always welcome!

See CONTRIBUTING.md for ways to get started.

Please adhere to this project's code of conduct.

Authors

License

MIT

💪 Thanks to all Wonderful Contributors

Thanks a lot for spending your time helping bitssh grow. Thanks a lot! Keep rocking 🍻

Contributors

🙏 Support++

This project needs your shiny star ⭐. Don't forget to leave a star ⭐️

forthebadge made-with-python forthebadge