Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vimiix/ssx
π¦
ssx is a retentive ssh client.
https://github.com/vimiix/ssx
autologin-cli automation cli lightweight-tool ssh ssh-client
Last synced: 2 days ago
JSON representation
π¦ ssx is a retentive ssh client.
- Host: GitHub
- URL: https://github.com/vimiix/ssx
- Owner: vimiix
- License: mit
- Created: 2023-05-05T03:07:18.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-12T00:38:55.000Z (3 days ago)
- Last Synced: 2024-11-12T01:26:02.389Z (3 days ago)
- Topics: autologin-cli, automation, cli, lightweight-tool, ssh, ssh-client
- Language: Go
- Homepage: https://ssx.vimiix.com/
- Size: 288 KB
- Stars: 32
- Watchers: 2
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
π¦ ssx is a retentive ssh client.
It will automatically remember the server which login through it,
so you do not need to enter the password again when you log in again.
## Document
π [https://ssx.vimiix.com/](https://ssx.vimiix.com/)
## Getting Started
### Installation
Download binary from [releases](https://github.com/vimiix/ssx/releases), extract it and add its path to your `$PATH` list.
If you want to install from source code, you can run command under project root directory:
```bash
make ssx
```then you can get ssx binary in **dist** directory.
### Add a new entry
```bash
ssx [USER@]HOST[:PORT] [-k IDENTITY_FILE] [-p PORT]
```If given address matched an exist entry, ssx will login directly.
### List exist entries
```bash
ssx list
# output example
# Entries (stored in ssx)
# ID | Address | Tags
#-----+----------------------+--------------------------
# 1 | [email protected]:22 | centos
```ssx does not read `~/.ssh/config` by default unless the environment variable `SSX_IMPORT_SSH_CONFIG` is set.
ssx will not store user ssh config entries to itself db, so you won't see their `ID` in the output of the list command```bash
export SSX_IMPORT_SSH_CONFIG=true
ssx list
# output example
# Entries (stored in ssx)
# ID | Address | Tags
#-----+----------------------+--------------------------
# 1 | [email protected]:22 | centos
#
# Entries (found in ssh config)
# Address | Tags
# -----------------------------------+----------------------------
# [email protected]:22 | github.com
```### Tag an entry
```bash
ssx tag -i [-t TAG1 [-t TAG2 ...]] [-d TAG3 [-d TAG4 ...]]
```Once we tag the entry, we can log in through the tag later.
### Login
If not specified any flag, ssx will treat the second argument as a keyword for searching from host and tags, if not matched any entry, ssx will treat it as a new entry, and try to login.
```bash
# login by interacting, just run ssx
ssx# login by entry id
ssx -i# login by address, support partial words
ssx# login by tag
ssx
```### Execute command
```bash
[-c] [--timeout 30s]
ssx
ssx [-c] [--timeout 30s]# for example: login 192.168.1.100 and execute command 'pwd':
ssx 1.100 pwd
```### Delete an entry
```bash
ssx delete -i
```## Supported environment variables
- `SSX_DB_PATH`: DB file to store entries, default is `~/.ssx.db`.
- `SSX_CONNECT_TIMEOUT`: SSH connect timeout, default is `10s`.
- `SSX_IMPORT_SSH_CONFIG`: Whether to import the user ssh config, default is empty.
- `SSX_UNSAFE_MODE`: The password is stored in unsafe mode
- `SSX_SECRET_KEY`: The secret key for encrypting entry's password, default will use machineid## Upgrade SSX
> Since: v0.3.0
```bash
ssx upgrade
```## Copyright
Β© 2023-2024 Vimiix
Distributed under the MIT License. See [LICENSE](https://github.com/vimiix/ssx/blob/main/LICENSE) file for details.