English | 中文
🦅 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/
Getting Started
Installation
Download binary from 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:
make ssx
then you can get ssx binary in dist directory.
Add a new entry
ssx [USER@]HOST[:PORT] [-i IDENTITY_FILE] [-p PORT]
If given address matched an exist entry, ssx will login directly.
List exist entries
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
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
ssx tag --id <ENTRY_ID> [-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.
# login by interacting, just run ssx
ssx
# login by entry id
ssx --id <ID>
# login by address, support partial words
ssx <ADDRESS>
# login by tag
ssx <TAG>
Execute command
ssx <ADDRESS> [-c] <COMMAND> [--timeout 30s]
ssx <TAG> [-c] <COMMAND> [--timeout 30s]
# for example: login 192.168.1.100 and execute command 'pwd':
ssx 1.100 pwd
Delete an entry
ssx delete --id <ENTRY_ID>
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
ssx upgrade
Copyright
© 2023-2024 Vimiix
Distributed under the MIT License. See LICENSE file for details.