Tramp is an Emacs package, included in the standard library since Emacs 22.1, which provides a protocol-agnostic interface for transparent editing of remotely hosted files. Tramp supports a wide range of protocols, not only those intended for file transfer such as FTP and SCP/SFTP; almost any protocol which offers a remote shell can work as a Tramp substrate.
In general, files accessed via Tramp behave identically in Emacs to files on the local machine, the primary difference in user interface being that a remote file's path includes a URI-like prefix specifying (at least) the host on which the file resides.
Questions specifically relating to the configuration, use, or troubleshooting of the Tramp package should have this tag.
For a quick overview of how to set up and use Tramp, as well as some information on platform-specific pitfalls, visit the Emacs Wiki's page on Tramp; for exhaustive detail on every aspect of Tramp's care and feeding, visit the Tramp user manual.