🚀   Portable does more than just ELT. Explore Our AI Orchestration CapabilitiesÂ

When using an SSH tunnel to connect to your database, Portable first needs to reach your bastion host (jump server) over the network. If this step fails, you'll see an "SSH Tunnel Reach" or "SSH Tunnel Connectivity" error in the diagnostic checks.
Portable cannot establish a TCP connection to your bastion host on the SSH port (usually 22). This is a network-level issue that occurs before any authentication is attempted.
The most common cause. Your bastion host's firewall (or a network firewall) is blocking incoming connections on port 22 from Portable's IP addresses.
Solution: Whitelist Portable's IP addresses in your firewall rules for port 22. You can find our current IP addresses in your Portable dashboard under Settings → IP Addresses.
The hostname you provided for the bastion host may be incorrect or doesn't resolve.
Common mistakes:
SSH typically runs on port 22, but your bastion may use a non-standard port for security.
Check with your administrator:
The bastion server may be stopped, crashed, or undergoing maintenance.
The SSH daemon (sshd) may not be running on the bastion host.
If your bastion is on AWS, GCP, or Azure, security groups or network ACLs may be blocking access.
# Test TCP connectivity to SSH port
nc -zv bastion.example.com 22
# Or using telnet
telnet bastion.example.com 22
# Or test SSH connection directly
ssh -v [email protected]
If this works from your machine but Portable fails, the bastion allows your IP but not Portable's.
Use an online port checker:
Enter your bastion hostname and port 22.
SSH into the bastion from a machine that can access it, then:
# Check if sshd is running
sudo systemctl status sshd
# or
sudo service ssh status
# Check what port SSH is listening on
sudo netstat -tlnp | grep sshd
# or
sudo ss -tlnp | grep sshd
# UFW (Ubuntu)
sudo ufw status
# iptables
sudo iptables -L -n | grep 22
# firewalld (CentOS/RHEL)
sudo firewall-cmd --list-all
Also check Network ACLs if your bastion is in a VPC with custom ACL rules.
If you don't have a bastion host yet, here's a quick setup:
# Update and install essentials
sudo apt update && sudo apt upgrade -y
# SSH should be installed by default, verify it's running
sudo systemctl status ssh
# Configure firewall (allow SSH)
sudo ufw allow 22/tcp
sudo ufw enable
# Optionally, restrict to specific IPs only
sudo ufw delete allow 22/tcp
sudo ufw allow from <PORTABLE_IP_1> to any port 22
sudo ufw allow from <PORTABLE_IP_2> to any port 22
Portable performs two separate SSH checks:
| Check | What It Tests | Common Failures |
|---|---|---|
| SSH Tunnel Reach | Can we connect to bastion on port 22? | Firewall, wrong hostname, server down |
| SSH Tunnel Auth | Can we authenticate with credentials? | Wrong username, bad key format, key not authorized |
If "SSH Tunnel Reach" fails, the authentication check is skipped (can't authenticate if we can't connect).
Before contacting support, verify:
If you can reach the bastion from other locations but Portable can't, contact support with:
nc -zv <bastion> <port> from an external server