8 breaking releases
new 0.9.0 | Apr 6, 2025 |
---|---|
0.8.0 | Mar 25, 2025 |
0.7.0 | Mar 23, 2025 |
#916 in Network programming
658 downloads per month
1.5MB
456 lines
An ssh server manages tui tools.
Install
Use cargo
cargo install lazyssh
Usage
Simply run the lazyssh
command in the terminal(It is recommended to add a command alias for lazyssh
, such as s
),
and the TUI program will list all remote servers. You can select a server using your mouse or keyboard, double-click or
press Enter to log in to the server. All server information comes from the ~/.ssh/config
file.
Shortcut
Key | Desc |
---|---|
Mouse click | Select server |
j/↓ | Move down |
k/↑ | Move up |
g/Home | Move to top |
G/End | Move to bottom |
/ | Enter search mode |
Ctrl+j/k or ↑/↓ | Move down/up in search mode |
Backspace | Delete search query chars |
Esc | Exit search mode |
Double click/Enter | Perform SSH login |
q | Exit |
~/.ssh/config file Example
Using public and private keys(Recommended)
Host Tencent ubuntu server
HostName 49.235.30.166
User root
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/keys/ubuntu
Using password(Not recommended)
- Define password with
#: Password
, please make sure that thesshpass
command is installed.
Host Media server
HostName 49.235.30.205
User root
Port 22
#: Password 123456
Define grouping
- If you want to group servers, define group name with
#: Group
.
#: Group Personal servers
Host Tencent ubuntu
HostName 49.235.30.166
User root
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/keys/ubuntu
Host Media server
HostName 49.235.30.205
User root
Port 22
#: Password 123456
Host Storage server
HostName 49.235.30.205
User root
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/keys/storage_server
#: Group Dev
Host k8s_master
HostName 192.168.19.200
User root
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/keys/k8s_master
Host dev_node1
HostName 192.168.20.21
User root
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/keys/dev_node1
Host dev_node2
HostName 192.168.20.34
User root
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/keys/dev_node2
#: Group Product
Host product_node1
HostName 192.168.10.10
User root
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/keys/product_node1
Host product_node2
HostName 192.168.10.13
User root
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/keys/product_node2
$ tree ~/.ssh
/Users/jing/.ssh
├── config
├── keys
│ ├── product_node1
│ ├── product_node1.pub
│ ├── product_node2
│ ├── product_node2.pub
│ ├── ubuntu
│ ├── ubuntu.pub
│ ├── k8s_master
│ ├── k8s_master.pub
│ ├── dev_node1
│ ├── dev_node1.pub
│ ├── dev_node2
│ ├── dev_node2.pub
│ ├── storage_server
│ └── storage_server.pub
└── known_hosts
Tips
- You can use
ssh-keygen -t rsa -b 4096 -C youremail@xxx.com
to generate the private and public key. Usessh-copy-id -i xxx.pub -p 22 yourusername@x.x.x.x
to send the public key to the remote server. - You can log in to multiple remote servers using one pair of public and private keys.
- The
Host
value in the~/.ssh/config
file can be set to non-ASCII characters, so you can type Chinese, Japanese, Korean, etc. - You can upload your
~/.ssh
folder to a git private repository to make it easy to synchronize configurations across multiple machines.
Dependencies
~10–22MB
~318K SLoC