Ya mencionaste ssh, vim y wget, que es esencial y perfecto. Algunas herramientas adicionales que pueden facilitarle la vida:
1. Pantalla GNU / byobu
"GNU Screen es un multiplexor de terminal gratuito que permite al usuario acceder a múltiples sesiones de terminal separadas dentro de una sola ventana de terminal o sesión de terminal remota. Es útil para manejar múltiples programas desde la línea de comandos y para separar programas del shell que comenzó el programa." (Desde la página GNU_Screen en wikipedia)
Una ventaja principal es que puede tener uno o varios terminales virtuales que se encuentran exactamente en el mismo estado en que los dejó cuando regresa (es decir, vuelva a iniciar sesión mediante ssh). Esto también es bueno cuando su conexión se interrumpe por alguna razón.
La pantalla funciona independientemente del software que utiliza para conectarse a la caja (vive en el servidor), por lo que combina bien con la masilla o la mayoría de los demás software de terminal.
Este artículo muestra algunas cosas buenas que puede hacer con él: http://www.pastacode.de/extending-gnu-screen-adding-a-taskbar/en/
Una buena alternativa es byobu, que viene muy bien preconfigurado en algunas distribuciones: http://byobu.co/
2. Comandante de medianoche
Una herramienta de navegación tipo consola basada en gráficos para ver y manipular archivos y directorios.
También puede hacer transferencias remotas seguras. Hay un cliente FISH y FTP integrado.
Esto significa que tiene 2 ventanas de texto una al lado de la otra en una consola de línea de comandos y una muestra su casilla remota y la otra donde sea que la conecte (que también puede ser su sistema local). Luego puede navegar por ambos sistemas de archivos uno al lado del otro y marque o investigue archivos individuales o archivos de árbol y también cópielos o muévalos entre ubicaciones. FISH es seguro, FTP no lo es. Muy potente y simple para principiantes.
3. rsync
Para una transferencia y sincronización de archivos rápida, segura y confiable entre diferentes ubicaciones
4. VCS
Uso de un sistema de control de versiones distribuido como bazar, mercurial o git para actualizar el código. Github o Bitbucket ofrecen alojamiento de código comercial, pero no es necesario, también puede usarlo de manera eficiente en sus propias máquinas.
Joseph Kern: ¿puedes explicar cómo usas exactamente git para la organización de configuración remota?
5. Clientes terminales
En sistemas similares a Unix ya están a bordo, en Windows puede usar Putty, Tera Term, Mind Term o Pandora. O haga una instalación de cygwin y ssh desde las ventanas del terminal de cygwin a los cuadros remotos (lo que tiene más ventajas, pero esta es una cuestión de lo que prefiere).
6. Túneles y reenvío de puertos
Puede ser útil reenviar ciertos puertos de forma segura a su máquina local. Por ejemplo, puede reenviar el puerto mysql TCP 3306 o postgres TCP 5432 e instalar alguna herramienta de administración de base de datos localmente.
Puede construir túneles desde máquinas Windwos con masilla (o línea de comando basada en su hermano pequeño plink), con cygwin y Mindterm también pueden hacer reenvío de puertos. Si está localmente en una máquina similar a Unix, puede usar ssh odr plink para crear ese túnel.
Para crear un túnel más estable y permanente para varios puertos, recomiendo OpenVPN. El método de túnel de "clave precompartida" de punto a punto no es tan difícil de instalar.
7. Tener un sistema local similar a Unix
Cuando su máquina local es una Mac, ya tiene esto, puede abrir un shell local. Cuando su estación de trabajo está basada en Windows, podría ser útil crear un servidor similar a Unix local, que esté en la misma red local. Esta puede ser una máquina diferente en una habitación diferente conectada al mismo enrutador o conmutador. O si solo desea una máquina, puede instalar el servidor vmware gratuito y crear una máquina virtual, preferiblemente el mismo sistema operativo que su máquina remota. Instale un servidor de samba en él y puede "usar en red" los recursos compartidos de samba desde su escritorio.
Si tiene un servidor ssh en el servidor local y abre el puerto 22 en su enrutador, puede ingresar a su sistema local cuando esté fuera.
Puede construir túneles para máquinas remotas o transferir y sincronizar archivos y árboles de archivos completos con rsync. Puede usarlo para pruebas, para VSC, para desarrollo local, como servidor web local, para fines de capacitación.
Puede extraer copias de seguridad de máquinas remotas. Puede crear trabajos cron locales que realicen copias de seguridad de forma automática (por ejemplo, bases de datos que desea guardar de forma local regularmente)
8. X GUI remota
Si está trabajando físicamente en Linux como un sistema, también es posible ejecutar aplicaciones GUI en sus servidores Linux que dibujan la GUI en su máquina local. Esto podría ser una herramienta de comparación de archivos gráficos o casi cualquier cosa que desee.
Aunque no es muy común y en muchos casos no es necesario usar el software gui para la administración de Linux Box, en algunos casos puede resultarle útil si puede.
En la máquina remota, asegúrese de que en / etc / ssh / sshd_config exista esta línea:
X11Forwarding Yes
Reinicie el servidor ssh con
/etc/init.d/sshd restart
Luego, la próxima vez que inicies sesión con
ssh -X me@remote-box
Tendrá un túnel X, intente instalar xclock en el servidor remoto para realizar pruebas y ejecutar xclock
IIN la sesión ssh que acabo de mencionar. Debería aparecer un simple reloj x para fines de prueba en su GUI de Linux.
Esto también es posible en una Mac si instala un entorno X local.
9. Si tiene un montón de cuadros o tareas similares: use una herramienta de configuración del sistema
Si tiene una granja de servidores o realiza grandes implementaciones en la nube con muchas máquinas redundantes o de otro modo iguales o similares, puede usar esto.
Probablemente no tendría sentido, si la mayoría de las cajas son individuales o tienen diferentes sistemas operativos o diferentes versiones ejecutándose.
Hay varias herramientas:
10. Implemente contenedores de aplicaciones con docker
Esto va incluso un paso más allá. Docker es un proyecto de código abierto que automatiza la implementación de aplicaciones dentro de contenedores de software: https://www.docker.io
11. Utilice Google Compute Engine con gestión de implementación automática
https://cloud.google.com/products/compute-engine/
Google ofrece máquinas virtuales Linux con posibilidades muy interesantes. Puede implementar rápidamente grandes grupos de máquinas virtuales con herramientas que incluyen una API RESTful, una interfaz de línea de comandos y una consola web. También puede usar herramientas como RightScale y Scalr para administrar automáticamente su implementación .