This guide walks you through setting up SshManager and connecting to your first SSH host. By the end, you'll have a working terminal session.
Before you begin, make sure you have:
- Windows 10 or 11 (64-bit)
- .NET 9.0 SDK - Download from Microsoft
- An SSH server to connect to - This could be a Linux server, router, or any device running SSH
To verify .NET is installed, open a terminal and run:
dotnet --versionYou should see 9.0.x or higher.
Open a terminal in the project directory and run:
# Build the application
dotnet build SshManager.sln
# Run the application
dotnet run --project src/SshManager.App/SshManager.App.csprojThe main window should appear with a split layout:
- Left panel: Host list with a sample "Sample Host" entry
- Right panel: Empty terminal area (tabs appear when you connect)
Let's add a real SSH host to connect to.
-
Click the + button in the toolbar, or right-click in the host list and select "Add Host"
-
Fill in the connection details:
Field Description Example Display Name A friendly name for this host My ServerHostname IP address or domain name 192.168.1.100orserver.example.comPort SSH port (usually 22) 22Username Your SSH username admin -
Select authentication method:
- SSH Agent (Default): Uses keys from
~/.ssh/or Windows OpenSSH agent - Private Key File: Browse to select a specific key file (e.g.,
id_rsa) - Password: Enter and save an encrypted password
- 1Password: Fetch credentials from a 1Password vault item at connection time
- SSH Agent (Default): Uses keys from
-
Click Save
Your new host appears in the host list.
| Type | When to Use | How It Works |
|---|---|---|
| SSH Agent | You have SSH keys set up in ~/.ssh/ |
Automatically uses existing keys from Pageant or Windows OpenSSH Agent |
| Private Key File | You have a key file in a custom location | You specify the path to the private key (with optional passphrase) |
| Password | The server uses password authentication | Password is encrypted with Windows DPAPI and stored locally |
| Kerberos | Your organization uses Active Directory | Uses Windows domain credentials for authentication |
| 1Password | You use 1Password for credential management | Fetches passwords or SSH keys from 1Password vaults at connection time via biometric unlock |
Tip: SSH Agent is the most secure option as it doesn't store credentials in the app. If you're using Windows OpenSSH Agent or Pageant, your keys are automatically detected.
There are several ways to connect:
- Double-click the host in the list
- Right-click the host and select "Connect"
- Select the host and press Enter
- A new terminal tab opens in the right panel
- The application establishes the SSH connection
- You see the remote system's login banner or prompt
- You can now type commands!
On first connection to a new host, you'll see a dialog asking to verify the host's fingerprint. This is a security feature:
- Compare the fingerprint with what you expect (check with your server admin if unsure)
- Click "Accept" to trust this host
- The fingerprint is saved; you won't be asked again unless it changes
Warning: If you see this dialog for a host you've connected to before, the server's key may have changed. This could indicate a security issue.
Once connected, you have a full terminal session:
- Type commands and press Enter to execute
- Scroll with mouse wheel or scrollbar
- Select text by clicking and dragging
- Copy: Ctrl+C (when text is selected)
- Paste: Ctrl+V
| Feature | How to Access |
|---|---|
| New Tab | Ctrl+T or right-click host |
| Close Tab | Click X on tab, or type exit |
| Switch Tabs | Click tab or Ctrl+Tab |
| Search | Ctrl+F (opens search overlay) |
| Clear Terminal | Right-click in terminal > Clear |
| Change Theme | Settings > Terminal Theme |
The terminal supports complex terminal applications:
- vim/nano: Text editors work correctly
- htop/top: Process monitors render properly
- tmux/screen: Terminal multiplexers work
- docker: Container management works
- colored output: ls --color, git diff, etc.
If you have many hosts, organize them into groups:
- Right-click in the host list
- Select "Add Group"
- Enter a name (e.g., "Production", "Development", "Home Lab")
- Click Save
- Right-click a host
- Select "Move to Group"
- Choose the target group
- Click the arrow next to a group name to expand/collapse
- Groups remember their state between sessions
Access settings via the gear icon in the toolbar.
| Setting | What It Does |
|---|---|
| Terminal Theme | Change terminal colors (dark themes, solarized, etc.) |
| Scrollback Buffer | How many lines of history to keep |
| Credential Caching | Remember passwords/passphrases temporarily |
| Session Logging | Save terminal output to files |
- Choose a terminal theme you like
- Enable credential caching if you connect frequently (with timeout)
- Set scrollback buffer to a comfortable size (default 10000 is usually good)
- Connect to first host (creates tab)
- Double-click another host (creates second tab)
- Click tabs to switch between sessions
View multiple terminals side by side:
- Right-click a terminal tab
- Select "Split Horizontal" or "Split Vertical"
- Drag tabs between panes
Keyboard shortcuts:
- Ctrl+Shift+H: Split horizontal
- Ctrl+Shift+V: Split vertical
From SSH Config (~/.ssh/config):
- Settings > Import > SSH Config
- Select your config file
- Choose hosts to import
- Click Import
From PuTTY:
- Settings > Import > PuTTY Sessions
- Select sessions to import
- Click Import
Save frequently used commands:
- Open Snippets Manager (toolbar or Ctrl+Shift+S)
- Click Add
- Enter name, command, and optional category
- Save
To use a snippet:
- Right-click in terminal
- Select "Insert Snippet"
- Choose your snippet
- Check: Is SSH running on the server? (
sudo systemctl status ssh) - Check: Is the port correct? (default is 22)
- Check: Is the server's firewall allowing SSH?
- Check: Is the username correct?
- Check: For password auth, is the password correct?
- Check: For key auth, is the key authorized on the server?
- The server's key has changed since you last connected
- This could indicate a security issue or a server reinstall
- If expected, remove the old fingerprint from Settings > Host Keys
- Try a different terminal theme
- The server may be sending unexpected escape sequences
- Check the server's
$TERMenvironment variable
- Check network stability
- Consider using
tmuxorscreenon the server for persistent sessions - Check if the server has an SSH timeout configured
- Enable Auto-Reconnect in Settings to automatically reconnect on drops
- Adjust the Keep-Alive Interval in host settings to prevent idle disconnections
Now that you're connected, explore more features:
- SFTP Browser: Transfer files graphically
- Port Forwarding: Tunnel ports through SSH
- ProxyJump: Connect through bastion hosts
- Visual Tunnel Builder: Create complex tunnel configurations visually
- Session Recording: Record and playback terminal sessions
- Backup & Sync: Backup your hosts or sync across devices
- Serial Ports: Connect to COM ports for embedded devices
- 1Password Integration: Use 1Password for secure credential management
| Action | Shortcut/Method |
|---|---|
| Add host | Toolbar + or right-click > Add Host |
| Connect | Double-click or Enter |
| Quick Connect | Ctrl+K |
| New tab | Ctrl+T |
| Close tab | Ctrl+W or click X |
| Switch tabs | Ctrl+Tab or click |
| Search terminal | Ctrl+F |
| Copy | Ctrl+C (with selection) |
| Paste | Ctrl+V |
| Split horizontal | Ctrl+Shift+H |
| Split vertical | Ctrl+Shift+V |
| Zoom in | Ctrl+Plus |
| Zoom out | Ctrl+Minus |
| Reset zoom | Ctrl+0 |
| Settings | Toolbar gear icon |
| Snippets | Ctrl+Shift+S |
| Start recording | Right-click > Record Session |
| Toggle broadcast | Right-click > Broadcast Input |
- Check the README for feature documentation
- Check the Architecture Guide for technical details
- Look at logs in
%LocalAppData%\SshManager\logs\for error details