I think you've got two problems.
1) setting up a single ssh connection that goes through the bastion host.
This is basically the same problem as How do I do Multihop SCP transfers? so go read that first.
2) now that you know how to deal with it on the command line more transparently, you need to set it so that it happens without the CLI options.
Set up a ~/.ssh/config
file for the user that does the ssh'ing. (Almost?) anything that you can specify on the ssh command line, you can specify in the config file.
For this you would want something along the lines of:
host www.example.com
port 4188
forwardagent yes
host virt-host.internals.int
proxycommand ssh www.example.com nc virt-host.internals.int 8854
I haven't tested this so the syntax may be off, but it should get you going in the right direction.
Note that it assumes that you can resolve the name virt-host.internals.int from the original client machine. This may not be the case (internal dns only), in which case you will have to kludge it somehow (e.g. /etc/hosts
, using ip instead of hostname, etc).