This is what the login process looks like for me:
I like this setup because it is super secure and keeps out script kiddies, but it is a big hassle. I am thinking about making a CLI wrapper for ssh to automate this process. It would open the port for you before connecting, then automatically close things up when your session has ended. Is there anyone else out there who would like a tool to do this?
Have you looked into Terraform or CloudFormation? Should be able to pull this off w/o rolling your own script for it.