Seems like Capistrano can't connect to the server and is timing out, the most likely culprit is that it's not reading the SSH key correctly. The easiest way to test it would be to try creating an ssh config file:
Make sure it connects. (I'm assuming 18.104.22.168 is the IP of your server...)
If that works, try cap production deploy:check again.
What's happening here is the ssh config will feed the extra parameters to any SSH call to that Host (in this case the IP). You could change the Host to 'mysite.com' if you wanted and then you would run ssh firstname.lastname@example.org if you wanted to create some separation.