What you see is most likely your client's reaction to an ICMP port-unreachable sent by the server upon receiving the first TCP SYN-packet for a port that does not accept connections. This is correct behavior and allows the client to quickly tell you so.
If you actually mean stealth as in "this host is non-existing, dead or offline and doesn't send anything at all", configure your firewall to drop (as opposed to reject) any packets to this port. Assuming netfilter/iptables:
iptables -I INPUT -p tcp --dport 22 -j DROP
This leads to the client hanging for a while as it cannot decide if a response is in transit or non-existant.
Note: This will actually kill all connections instantly, including the running ones. Molly switch alert!