Ssh – Port Forward – KVM host forward port 23 to port 22 of a guest running an ssh service

firewallfirewall-cmdforwardingport-forwardingssh

I have a KVM server (host) with multiple virtual machines (guests).

My goal is my host forward port 23 to port 22 of a guest running an ssh service.

Command example…

ssh root@[HOST_IP] -p 23

NOTE I: That was the command I used on the host to make the port forward…

firewall-cmd --permanent --add-forward-port=port=23:proto=tcp:toaddr=[GUEST_IP]:toport=22
firewall-cmd --reload

NOTE II: I know that ssh itself provides the means to make this possible, but I really want this process to be "transparent" for the user to access the guest directly.

NOTE III: I will need to do a similar process for other ports (eg 389) so that I look for a process that works in other similar cases.

Thanks! =D


UPDATE I:

Currently the…

ssh root@[HOST_IP] -p 23

… command returns me the following error…

ssh: connect to host 172.16.13.8 port 23: Connection refused

UPDATE II:

Directly related thread here!

Best Answer

The "only" way we can make a port forward using KVM (libvirt) with the "default network" (virbr0) is using the hack/workaround informed by @Antony Nguyen . Or more simply you can use libvirt-hook-qemu.

This thread has a complete explanation of how to solve this problem for CentOS 7 (and certainly for other distros) using libvirt-hook-qemu: https://superuser.com/a/1475915/195840 .