Using an SSH config file

If we wanted to create this forwarding setup each time we connected to centos2, we can add the option to our SSH configuration file.

Add the emboldened line in the following code:

Host * !CentOS2-V6
IdentityFile ~/.ssh/id_ed25519
Port 22

Host CentOS2-V4
Hostname 192.168.33.11
LocalForward 9999 127.0.0.1:8888
User vagrant

Host CentOS2-V6
Hostname fe80::a00:27ff:fe56:c5a7%%eth1
IdentityFile ~/.ssh/id_rsa
Port 22
User vagrant

Host CentOS2-Hostname
Hostname centos2
User vagrant

Now, if you SSH to the host specified, you will create a forwarded connection without having to specify it:

[vagrant@centos1 ~]$ ssh -f CentOS2-V4 sleep 120
[vagrant@centos1 ~]$ curl 127.0.0.1:9999
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>
<title>Directory listing for /</title>
<body>
<h2>Directory listing for /</h2>
<hr>
<ul>
<li><a href=".bash_history">.bash_history</a>
<li><a href=".bash_logout">.bash_logout</a>
<li><a href=".bash_profile">.bash_profile</a>
<li><a href=".bashrc">.bashrc</a>
<li><a href=".ssh/">.ssh/</a>
</ul>
<hr>
</body>
</html>

You're not limited to one LocalForward entry per host—you can have several.