I have 3 VMs in one Cloud service - they are all identical. I created 3 because of SLA and load balancing. However, when I want to update my VM (deployment, configure my machine, etc.) I have to SSH into every VM and do 3 times the same work. Is it somehow possible to just SSH once and all the other VMs get a "copy" of the changes I made? Note: I don't use Visual Studio.
Welcome to the wonderful world of automation!
The easiest way is to write a script to perform the work you want to perform, and then have another script that scp's it to the servers and runs it, feeding the results back to you.
There are many tools that will do this work for you. (check out Puppet, Chef, Ansible, Salt) The basics of those are that you tell it about the servers you want to manage, set the servers into groups and then configure scripts to run against those groups (this is hugely simplified! they are capable of much much more than that)
Finally, if it is code deployment you're looking at, you can mount it on a shared path, or have it being pulled down from github etc (or you can have github etc tell your server that code has changed (via a webhook))
At the time of writing this, I am working on building three webservers that are built via Azure Resource Management templates, once they are running they download a script from a blob store and automatically configure themselves. The aim is that I will never need to log into those servers, if at any point I do, then I go back and edit the script to take care of what I hadn't previously done.
It is about getting yourself into a mindset of automate first. Because it saves a huge amount of time in the long run, and your builds generally end up being much more resilient as a result.