ssh without opening the ports
You can do this over Empathy's backend (telepathy) through another application called ssh-contact.
I haven't used it personally, but it seems to me like a good way of getting two novices to SSH into each other.
Of course another method would be to have them SSH to you (I assume you're competent enough to manage your port forwarding) and forward a port back to a ssh server on their machine.
Get them to run:
ssh -R 48724:localhost:22 your_username@your_ip
You obviously might not want them logging in as your user so you could create another user and have that just for SSHing. There obviously has to be a modicum of trust between you and the other user.
And then you run:
ssh -p 48724 their_username@localhost
I'm using a high port so root privileges aren't required.
Of course, they'll need openssh-server
installed for you to connect but that's a simple sudo apt-get install openssh-server
Perhaps this article about reverse SSH tunnel could be of some help to you:
http://www.marksanborn.net/howto/bypass-firewall-and-nat-with-reverse-ssh-tunnel/
Any incoming connection by any means whatsoever will require opening a port. There's just no other way to make a network connection. If there is no existing port you can use, then you can't simply go that direction.
But you can go the other way. If you have your friend open an ssh connection to your machine, and port forward the ssh port, then you can ssh back through his tunnel to his machine. This gives you an ssh connection to his machine that will only survive as long as his ssh to you, (complete with port forwarding), remains.
This method also ducks firewalls.