Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/depau/shcrt
Shell script to replace SecureCRT/FX
https://github.com/depau/shcrt
free-software gnulinux linux securecrt ssh wsl
Last synced: 3 months ago
JSON representation
Shell script to replace SecureCRT/FX
- Host: GitHub
- URL: https://github.com/depau/shcrt
- Owner: depau
- License: gpl-3.0
- Created: 2019-09-07T00:13:08.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-05-01T20:50:33.000Z (over 3 years ago)
- Last Synced: 2024-06-11T13:44:53.415Z (5 months ago)
- Topics: free-software, gnulinux, linux, securecrt, ssh, wsl
- Language: Shell
- Homepage: https://aur.archlinux.org/packages/shcrt-git/
- Size: 93.8 KB
- Stars: 10
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - depau/shcrt - Shell script to replace SecureCRT/FX (Shell)
README
# shcrt
SecureCRT session browser for GNU/Linux and Windows Subsystem for Linux.
It should also work on macOS with some changes but YMMV.
Beta quality. I use it on a daily basis, it should work in most cases.
![Screenshot](https://i.postimg.cc/C57BG5Nf/screen.png)
## Features
- Browse SecureCRT sessions
- Search through them
- Parse SSH sessions and generate a OpenSSH command line
- Run SSH or an SFTP client such as FileZilla
- Password is automatically copied to clipboard if found
- Works with WSL1 and WSL2 - session files are read from the Windows SecureCRT installation## How to use
### Arch Linux (including Arch on WSL)
AUR package: https://aur.archlinux.org/packages/shcrt-git/
### Other distributions (including WSL)
It should work both natively on GNU/Linux and on Windows under WSL, provided you have
`bash`, `python3`, `pycrypto` for Python3 and your favorite dialog tool
((c)`dialog` works everywhere).- Clone it with `--recursive`
```bash
git clone --recursive https://github.com/Depau/shcrt.git
```
- If you forgot about it...
```bash
git submodule init
git submodule update
```
- Simply run the script:
```bash
./shcrt
```
## ConfigurationConfiguration can be placed in `~/.shcrtrc`. It must be a sourceable by bash, use bash syntax.
### Custom GUI mode
```bash
export supermode=YOUR_CHOICE
```It must be set to one of the GUI back-ends supported by [EasyBashGUI](https://github.com/BashGui/easybashgui/).
At the time of writing, supported modes are:
- `dialog`: ncurses terminal based GUI (good for WSL)
- `none`: uses internal shell-based EBG GUI, which uses `echo` and `read`
- `zenity`: GTK-based GUI for GNOME-base desktops, with a Windows port (see below)
- `yad`, `gtkdialog`, `xdialog`: other GTK-based GUIs for GNOME-based desktops
- `kdialog`: Qt5-based GUI for KDE or Qt-based desktopsNeedless to say, unless you're using `none`, the desired GUI back-end needs to be installed.
If you're using WSL and you don't want to use a terminal-based GUI, you need an X11 server such as [VcXsrv](https://sourceforge.net/projects/vcxsrv/).
Otherwise you can use Zenity for Windows.Default is determined by EasyBashGUI. On GNU/Linux it will pick a GUI dialog that fits with the running desktop environment, falling back to a TUI dialog. On Windows, a TUI dialog will run unless configured.
#### Zenity on Windows
*Note: This was only tested on WSL1. WSL2 might have additional shenanigans.*
The script includes an experimental wrapper for [native Windows Zenity](https://github.com/maravento/winzenity) on WSL.
To make it work, you need to:
- Download WinZenity: https://github.com/maravento/winzenity
- Place it somewhere in your Windows drive (i.e. `C:\Program Files\zenity.exe`)
- Add this line to your `~/.shcrtrc`:
```bash
alias zenity.exe="'/mnt/c/path/to/your/zenity.exe'"
# for example
alias zenity.exe="'/mnt/c/Program Files/zenity.exe'"
```
- Notice how you need to put double quotes to take into account for the spaces in the file path.
### Emojis
```bash
export emojis=YOUR_CHOICE
```Force enable/disable emojis. Emojis are enabled by default on GNU/Linux, and disabled on WSL.
If you're using a custom terminal that supports emojis you can force-enable them on Windows too.- `auto`: always display emojis on GNU/Linux, disabled on WSL because of crappy terminal
- `yes`, `no`: force enable/disable### Custom SecureCRT config path
```bash
export crtconfig="/path/to/your/Config"
```Overrides default SecureCRT config paths:
- GNU/Linux: `~/.vandyke/SecureCRT/Config`
- Windows: `%APPDATA%/VanDyke/Config` (⇒ usually `/mnt/c/Users/your.user/AppData/VanDyke/Config`)### SFTP client helper
In order to run an SFTP client, a helper script/function must be provided.
The helper needs to accept a ssh-like command line. It can be provided as a bash function or as a binary in `$PATH`.By default, if nothing is provided the program will display an error message.
A FileZilla helper is provided and it should work on GNU/Linux and Windows on WSL.
To enable it, add the following to your `.shcrtrc`:```bash
export sftp_client_runner=run_filezilla
```The FileZilla helper source code can be found in `sftp_runners.sh`
### Default session action
```bash
export default_action="ask"
```Sets an action that will always be run immediately when selecting a session.
Default is `ask`. Available options are:- `ask`: let user pick an action from a menu
- `print`: print session details to console and exit
- `exec_ssh`: execute ssh
- `exec_sftp`: execute SFTP helper (it needs to be provided)## Bugs
I expect it to be full of bugs; so should you.
Please report any bugs you find on GitHub :)