In Jenkins when to use SSH site and when to use a node?
If I need to build, run checks, tests, ... I use a node.

If I want to open a connection to a server to deliver the built code to production for example, I use the sshCommand step from SSH Step plugin. When the code is delivered the ssh connection is closed.

Having a node always connected to your jenkins can be unpleasant. Let's say the server you connect to belongs to a partner and he wants to audit the times you connect to put the files on the server. In that case he cannot say. Having a node always connected also means you need to maintain the connection, imagine the server is configured to disconnect you after a while or the server reboots and the connection is not relaunched.