You mentioned already ssh, vim and wget which is essential and perfect. Some additional tools that can make life easier:
1. GNU Screen / byobu
"GNU Screen is a free terminal multiplexer that allows a user to access multiple separate terminal sessions inside a single terminal window or remote terminal session. It is useful for dealing with multiple programs from the command line, and for separating programs from the shell that started the program." (From the GNU_Screen page on wikipedia)
A main advantage is that you can have one or several virtual terminals that are in the exactly same state as you left them when you come back (i.e. relogin via ssh). This is also good when your connection is broken for some reason.
Screen works indepently from the software you use to connect to the box (it lives on the server), so it combines well with putty or most other terminal software.
This article shows some nice things you can do with it: http://www.pastacode.de/extending-gnu-screen-adding-a-taskbar/en/
A good alternative is byobu, which comes nicely preconfigured on some distributions: http://byobu.co/
2. Midnight Commander
A console based graphical-like browsing tool for viewing and manipulation of files and directories.
Can also do secure remote transfers. There is a built in FISH and FTP client.
This means you have 2 text-windows side by side in a command line console and one shows your remote box and the other wherever you connect it to (which can also be your local system) Then you can navigate both file systems side by side and mark or investigate individual files or file treeees and also copy or move them between locations. FISH is secure, FTP isn't. Very powerful and simple for beginners.
For fast, secure and reliable file transfer and synchronisation between different locations
Use of a distributed version control system like bazaar, mercurial or git to update code. Github or Bitbucket offer commecrcial code hosting, but it is not necessary, you can also use it efficiently on your own machines.
Joseph Kern: can you elaborate how you exactly use git for remote config organisation?
5. Terminal Clients
On unix-like-systems they are already on board, on Windows you can use Putty, Tera Term, Mind Term or Pandora. Or make a cygwin installation and ssh from the cygwin terminel windows to the remote boxes (which has more advantages but this is a question of what you prefer).
6. Tunneling and Port Forwarding
It can be helpful to forward certain ports securely to your local machine. For example you could forward the mysql port TCP 3306 or postgres TCP 5432 and install some database administration tool locally.
You can build tunnels from Windwos machines with putty (or command line based with it's little brother plink), with cygwin and Mindterm also can do port forwarding. If you are locally on a unix-like machine you can use ssh odr plink to create such tunneling.
To create some more stable and permanent tunneling for various ports I recommend OpenVPN. The "pre-shared-key" tunneling method from point to point is not so hard to install.
7. Have a local unix-like system
When your local machine is a Mac you have this already, you can open a local shell. When your workstation is windows-based it could be helpful to create a local unix-like server, which is in the same local network. This can be a different machine in a different room connected to the same router or switch. Or if you want only one machine, you can install the free vmware server and make a virtual machine, preferably the same operating system as your remote machine. Install a samba server on it and you can "net use" the samba shares from your desktop.
If you an ssh server on the local server and open port 22 on your router for it you can ssh into your local system when you are outside.
You can build tunnels to remote machines or transfer and synchronise files and whole file trees with rsync. You can use it for testing, for VSC, for local development, as a local webserver, for training purposes.
You can pull backups from remote machines. You can create local cron jobs that do te backups autmatically (e.g. databases you want to save locally regularly)
8. X Remote GUI
If you are workin on Linux like system physically, it is also possible to run GUI applications on your linux servers that draw the gui on your local machine. This could be a graphical file compare tool or almost anything you want.
Although it is not very common and in msot cases not necessary to use gui software for linux box administration you might in some cases find it useful if you can.
On the remote machine make sure in /etc/ssh/sshd_config this line exists:
Restart the ssh server with
Then next time you login with
ssh -X me@remote-box
You will have an X tunnel, try to install xclock on the remote server for testing purposes and execute
xclock iin the ssh session I just mentioned. A simple x clock for testinng purposes should appear on your Linux GUI.
This is also possible an a Mac if you install a local X enviroment.
9. If you have a bunch of similar boxes or tasks: use a system configuration tool
If you have a server farm or do big cloud deployments with many redundant or otherwise equal or similar machines, you could use this.
Probably it would not make sense, if most boxes are individual or have different operating systems or different versions running.
There are several tools:
10. Deploy application containers with
This goes even one step further. Docker is an open source project that automates the deployment of applications inside software containers: https://www.docker.io
11. Use Google Compute Engine with automatic deployment management
Google offers Linux VMs with very exciting possibilities. You can quickly deploy large clusters of virtual machines with tools including a RESTful API, command-line interface and web-based Console. You can also use tools such as RightScale and Scalr to automatically manage your deployment.