I am assuming that the iptables rules are on your server, and your question means you only want to allow SSH connections into that server. Let's analyze your rules:
iptables -A INPUT -p tcp -m conntrack --ctstate RELATED,ESTABLISHED --dport ssh -j ACCEPT
This rule means: only TCP connections already in "ESTABLISHED" state can connect to the SSH port. This effectively blocks all connection attempts to SSH, because when someone (you) want to connect to the SSH port, the state is still "NEW" instead of "ESTABLISHED"
iptables -A OUTPUT -p tcp -m conntrack --ctstate RELATED,ESTABLISHED --dport ssh -j ACCEPT
This rule means: only allow access from the server to an SSH port, and only allow "ESTABLISHED" TCP connections. So, that's a type: --dport should be --sport
iptables -A FORWARD -p tcp -m conntrack --ctstate RELATED,ESTABLISHED --dport ssh -j ACCEPT
If your server is not functioning as a router, you don't need a FORWARD rule.
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
The basic and recommended 'hardening', dropping all traffic not explicitly allowed.
The correct rules
So, you must change your rules into the following:
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A OUTPUT -p tcp -m conntrack --ctstate RELATED,ESTABLISHED --sport ssh -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
Allow all attempts to connect to the SSH port
Allow all replies (TCP state ==
ESTABLISHED) from the SSH port
Drop all other connection
attempts
Drop all other traffic coming
out of the server
Important Notes:
Usually you will want to allow ICMP coming in and out of your server
Usually the OUTPUT chain has a default policy of ACCEPT instead of DROP