Netcatty supports complex SSH connection routing through jump hosts (bastion servers) and network proxies.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/binaricat/Netcatty/llms.txt
Use this file to discover all available pages before exploring further.
Connection Types
Direct Connection
Simple SSH connection directly to the target host.Jump Host (Single Hop)
Connect through one intermediate server.Multi-Hop Jump Chain
Connect through multiple intermediate servers.Proxy Connection
Route connection through an HTTP or SOCKS5 proxy.Proxy + Jump Host
Combine proxy and jump host for maximum flexibility.Host Chain Configuration
Netcatty uses thehostChain field to define jump host sequences.
Data Structure
Example
Setting Up Jump Hosts
Method 1: Host Details Panel
- Open the host you want to connect to
- Scroll to Jump Hosts section
- Click Add Jump Host
- Select the intermediate server from the dropdown
- For multi-hop:
- Click Add Jump Host again
- Select the next server in the chain
- Order matters: first added = first hop
- Click Save
Method 2: During Host Creation
- Click New Host
- Fill in target server details
- In Jump Hosts section, add intermediaries
- Order from left to right = connection order
- Click Create
Method 3: SSH Config Import
Import existing SSH config with ProxyJump:hostChain.
Proxy Configuration
Netcatty supports HTTP CONNECT and SOCKS5 proxies.Data Structure
HTTP Proxy
Used for HTTP CONNECT tunneling:- Connect to proxy.company.com:8080
- Send HTTP CONNECT request for server.example.com:22
- Proxy establishes tunnel
- SSH connection proceeds through tunnel
SOCKS5 Proxy
Used for SOCKS5 tunneling:- Connect to SOCKS5 proxy
- Perform SOCKS5 handshake
- Request connection to target through proxy
- SSH connection proceeds through SOCKS5 tunnel
Setting Up Proxies in GUI
- Open Host Details for your target server
- Scroll to Proxy section
- Click Enable Proxy
- Select proxy type: HTTP or SOCKS5
- Enter proxy details:
- Host: Proxy server address
- Port: Proxy server port
- Username (optional): Proxy authentication username
- Password (optional): Proxy authentication password
- Click Save
Common Scenarios
Scenario 1: AWS Bastion Host
Network:-
Create bastion host entry:
-
Create private server entry:
Scenario 2: Corporate Network with DMZ
Network:-
Bastion in DMZ:
-
Internal server:
Scenario 3: Multi-Tier Jump (3 Hops)
Network:-
Public bastion:
-
Security gateway:
-
Production server:
Scenario 4: Corporate Proxy + Bastion
Network:-
Cloud bastion (with proxy):
-
Cloud VM (through bastion):
Scenario 5: SOCKS5 Proxy for Remote Access
Network:Authentication Through Jumps
Jump Host Authentication
Each jump host in the chain uses its own authentication:- SSH Key: Specify
identityFileIdfor each jump host - Password: Enter password for each jump host when connecting
- Agent Forwarding: Enable on jump hosts to forward your local SSH agent
Example: Different Keys per Hop
- Netcatty connects to bastion using personal-key-id
- Once bastion connection succeeds, Netcatty connects to production using deploy-key-id
- Both keys are loaded from Netcatty’s keychain
SSH Agent Forwarding
Enable agent forwarding to use your local SSH keys on jump hosts:- Open jump host details
- Enable Agent Forwarding
- Jump host can now use your local keys for onward connections
Circular Reference Detection
Netcatty prevents infinite loops in jump host chains. Example of circular reference:- During SSH config import
- When saving host details
- Before initiating connection
Connection Troubleshooting
Connection Timeout at Jump Host
Symptoms: Connection hangs when reaching jump host Possible causes:- Jump host is down or unreachable
- Firewall blocking SSH port
- Wrong hostname/IP for jump host
- Authentication failed on jump host
- Test jump host directly: Connect without target server
- Check jump host logs:
sudo journalctl -u sshd -f - Verify network path:
pingortracerouteto jump host - Try from command line:
ssh -J jumphost targethost
Authentication Failed on Target
Symptoms: Jump host connects, but target authentication fails Possible causes:- Wrong username for target server
- SSH key not accepted by target
- Agent forwarding not enabled
- Target server AllowUsers/DenyUsers restrictions
- Test target from jump host: SSH to jump host, then SSH to target manually
- Check target’s authorized_keys:
cat ~/.ssh/authorized_keys - Enable agent forwarding on jump host
- Check target’s sshd_config for AllowUsers
Proxy Connection Failed
Symptoms: Cannot establish proxy connection Possible causes:- Proxy server down or unreachable
- Wrong proxy host/port
- Proxy authentication required but not provided
- Proxy doesn’t support CONNECT method (HTTP) or SOCKS5
- Test proxy:
curl -x http://proxy:8080 http://example.com - Verify proxy type: Some proxies only support HTTP, not CONNECT
- Check proxy logs if accessible
- Try direct connection without proxy to isolate issue
Multi-Hop Performance Issues
Symptoms: Connection works but is very slow Possible causes:- Network latency compounded across hops
- Jump hosts under high load
- Bandwidth limitations
- Reduce number of hops if possible
- Use faster jump hosts
- Enable SSH compression: Add to SSH config or connection options
- Consider VPN instead of multiple SSH hops
Best Practices
Security
- Dedicated Jump Hosts: Use hardened, minimal-install servers as jump hosts
- Audit Logs: Enable detailed logging on jump hosts:
LogLevel VERBOSEin sshd_config - Principle of Least Privilege: Jump host users should only have access needed for forwarding
- Key Rotation: Regularly rotate SSH keys used for jump host access
- MFA: Enable multi-factor authentication on jump hosts if possible
- Disable Direct Root: Prevent root login on jump hosts:
PermitRootLogin no
Performance
- Connection Multiplexing: SSH will reuse connections when possible
- Persistent Connections: Keep jump host connections alive with
ServerAliveInterval - Geographic Proximity: Place jump hosts near target servers to minimize latency
- Limit Hops: Avoid more than 2-3 hops when possible
Management
- Descriptive Labels: Use clear names like “AWS Bastion (us-east-1)” instead of “Jump 1”
- Document Network Topology: Keep a diagram of your jump host infrastructure
- Test Regularly: Verify jump host chains still work, especially after network changes
- Monitor Jump Hosts: Track connection counts, failed auth attempts, system resources
Organization
- Group by Jump Host: Create groups for servers sharing the same bastion
- Naming Convention: Use prefixes like
[via-bastion]in host labels - Tags: Tag servers with their jump host for easy filtering
SSH Config Integration
Netcatty’s host chains map to OpenSSH ProxyJump: Netcatty:Alternatives to Jump Hosts
VPN
Instead of SSH jump hosts, use a VPN: Pros:- All servers appear on local network
- No need for complex jump chains
- Works for non-SSH protocols
- Requires VPN software and configuration
- May be blocked by corporate networks
- Potential security concerns with full network access
Port Forwarding
Use SSH local port forwarding:Tailscale / Zerotier
Mesh VPN solutions for seamless private networking:- Direct peer-to-peer connections
- No central bastion needed
- Works across NAT/firewalls
