🦅 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.
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.
ssx [USER@]HOST[:PORT] [-i IDENTITY_FILE] [-p PORT]
If given address matched an exist entry, ssx will login directly.
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
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.
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>
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
ssx delete --id <ENTRY_ID>
SSX_DB_PATH
: DB file to store entries, default is~/.ssx.db
.SSX_CONNECT_TIMEOUT
: SSH connect timeout, default is10s
.SSX_IMPORT_SSH_CONFIG
: Whether to import the user ssh config, default is empty.SSX_UNSAFE_MODE
: The password is stored in unsafe modeSSX_SECRET_KEY
: The secret key for encrypting entry's password, default will use machineid
Since: v0.3.0
ssx upgrade
© 2023-2024 Vimiix
Distributed under the MIT License. See LICENSE file for details.