Skip to main content

A simple CLI tool to SSH into servers from your ~/.ssh/config

Project description

ssh-to-server

A CLI tool that reads your ~/.ssh/config and lets you SSH into servers interactively — no need to remember hostnames or IPs.

Features

  • Lists all hosts from ~/.ssh/config
  • Select by number or navigate with arrow keys
  • Respects all SSH config settings (User, IdentityFile, Port, etc.)

Requirements

  • Python 3.11+
  • OpenSSH (ssh binary available in PATH)

Installation

pip install ssh-to-server

Or with uv:

uv tool install ssh-to-server

Usage

ssh-to-server

You'll see a numbered list of your hosts. Type a number and press Enter, or press Enter to use the arrow-key selector.

Configuration

The tool reads hosts from ~/.ssh/config by default. You can override this by creating ~/.config/ssh-to-server/config.toml:

[ssh]
config_path = "~/dotfiles/ssh/config"

SSH config format

If you don't have a ~/.ssh/config yet, here's an example:

Host my-server
  HostName 192.168.1.10
  User ubuntu
  IdentityFile ~/.ssh/id_ed25519

Host work-vpn
  HostName vpn.example.com
  User alice
  Port 2222

Development

git clone https://github.com/LucasDaSilva96/Py-SSH
cd Py-SSH
uv sync
uv run ssh-to-server

# Run tests
uv run pytest

# Lint
uv run ruff check .

License

MIT

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_to_server-1.0.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ssh_to_server-1.0.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file ssh_to_server-1.0.0.tar.gz.

File metadata

  • Download URL: ssh_to_server-1.0.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ssh_to_server-1.0.0.tar.gz
Algorithm Hash digest
SHA256 bf05ab63776b6c770098aa111d2c85b9f375904b895a8a95aea0a5f8fb4d2837
MD5 0aeba408f22539b5e60a143905aaff05
BLAKE2b-256 2f064e77a7b48165eb87d14c5dd91427ee795d6600591a55f776b8d431897e62

See more details on using hashes here.

File details

Details for the file ssh_to_server-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ssh_to_server-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ssh_to_server-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 40024fda439e3ef8d1723cbfed753bb211b624fc16ed333423e1901686a95a42
MD5 8e052f38abc97d6b10ca517aab31cdf2
BLAKE2b-256 bcc0ea2d88efa392c039126694917da6da113ee47c56bd8f029fc43fb2d18f5b

See more details on using hashes here.

Supported by

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