And don't distract on password prompts
ssh_manager:
usage: ssh_m [-h] [-n] [-R] [-C]
optional arguments:
-h, --help show this help message and exit
-n Proceed new SSH connection to storage Executed by default if storage is empty.
-R Acts same as $SSH_M_R Prevents renaming TMUX window on SSH connection.
-C Acts same as $SSH_M_C Prevents closing of TMUX after SSH is disconnected.
Since 0.2.0 ssh_manager works both on Windows and *NIX, thanks to InquirerPy
- python3 - is an interpreted, interactive, object-oriented, open-source programming language.
- ssh - OpenSSH-compatible client
- sshpass - Non-interactive ssh password authentication
- Define user-specific environment variable
- Unix-like:
myserver_root=$(cat ~/SuperSecretPasswordForRoot)
- Windows:
$env:myserver_root=$(cat ~/SuperSecretPasswordForRoot)
- Unix-like:
- IdentityFile - Private key for remote machine, could be placed anywhere
sudo apt install sshpass
brew install sshpass
1. Download .tar.gz source code
2. Extract archive and enter directory:
tar -xf sshpass*.tar.gz && rm sshpass*.tar.gz && cd sshpass*
3. Run as following:
./configure
make
sudo make install
2. [Optional] Check your PATH environment variable
- [Win + R] ->
SystemPropertiesAdvanced.exe
- Environment variables -> Path -> Edit
3. Drop sshpass.exe to one of present folder in Path
-
sshpass -V
(Check, that sshpass is installed and operable) -
echo $myserver_root ----- # Here goes the password
As simple as:
pip install ssh-m.py
- Remote selection:
- Simply run
ssh_m
> ssh_m ssh_manager v0.x.y: Select SSH user: >me@some.example.com milk@simplifymilk.local
- Simply run
- Add new remote
ssh_m -n
- Or press "n" key at
ssh_m
menu
Example configuration for new serverssh_manager v0.x.y: Hostname: google.com Remote user: root ? Select connection type: Env Environment variable prefix: mygoogle ----- > root@google.com milk@simplifymilk.local me@some.example.com
google.com
, with environment variable for it$mygoogle_root
- Additional controls
- [n] key - Create new entry in list while in menu
- [d] key - Delete hovered entry
- [q] or [Ctrl-C] or [Ctrl-D] - Close ssh_manager
The default storage is JSON
file type, that placing in home location:
~/.ssh_manager_store
Remember, the storage contains NO any sensitive information. It just a mapping for environment variable names and paths to key files.
Also, as mentioned before ssh_manager aims to rename TMUX active window and close pane at session disconnect. There's a few options how to configure that behavior:
@ ssh_m -R
- [R]ename - will prevent ssh_manager renaming active TMUX window
- Is alternative to
$SSH_M_R
environment variable.
@ ssh_m -C
- [C]lose - will prevent ssh_manager closing pane after SSH terminated
- Is alternative to
$SSH_M_C
.
-
Keep in mind that for password-based logins environment variable
$servernickname_user
is REQUIRED, otherwise use key-based entry -
You can specify any port for SSH using
:
delimeter after hostname, or specify explicitly-p
flag -
ssh_manager by default is checking whether running inside TMUX, and applies those actions to it
- Renaming current window to active ssh session
- Termination shell on ssh disconnect