Awesome
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.
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
git clone --recursive https://github.com/Depau/shcrt.git
- If you forgot about it...
git submodule init git submodule update
- Simply run the script:
./shcrt
Configuration
Configuration can be placed in ~/.shcrtrc
. It must be a sourceable by bash, use bash syntax.
Custom GUI mode
export supermode=YOUR_CHOICE
It must be set to one of the GUI back-ends supported by 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 usesecho
andread
zenity
: GTK-based GUI for GNOME-base desktops, with a Windows port (see below)yad
,gtkdialog
,xdialog
: other GTK-based GUIs for GNOME-based desktopskdialog
: Qt5-based GUI for KDE or Qt-based desktops
Needless 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. 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 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
: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
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 terminalyes
,no
: force enable/disable
Custom SecureCRT config path
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
:
export sftp_client_runner=run_filezilla
The FileZilla helper source code can be found in sftp_runners.sh
Default session action
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 menuprint
: print session details to console and exitexec_ssh
: execute sshexec_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 :)