Ssh Scp
SSH
SSH significa Secure SHell, y es la vía por la cual se conecta remotamente a un equipo con Linux para acceder a un terminal de comandos (shell), uno igual al que usas en tu PC pero remotamente. La información viaja encriptada por lo que además de ser útil es seguro, y claro, mucho más rápido que FTP si se quiere hacer algo como instalar y configurar un Wordpress +plugins.
Para conectarse remotamente por SSH, la sintaxis del comando es ésta:
$ ssh usuario@NU.ME.RO.IP
O bien:
$ ssh usuario@servidor.com
Obviamente el usuario con que se conecta no es el del equipo que se esta usando, sino de la cuenta del equipo remoto. Ahora, si el usuario es el mismo en ambos lados, se puede omitirlo:
$ ssh servidor.com
Una vez que se esta conectado, se puede ejecutar comandos al igual que si se abriera un terminal en el mismo computador.
También se puede ejecutar un comando único vía SSH, sin necesidad de loggearse al sistema:
$ ssh servidor.com aplicacion
O sea:
$ ssh bootlog.cl uname -a
Y por último, se puede ejecutar una aplicación X en el sistema remoto pero utilizando el display local. Sólo se tiene que agregar -X después de SSH:
$ ssh -X servidor.com aplicacion
SCP
SCP significa Secure CoPy es una parte más de SSH, que permite transferir archivos o carpetas entre computadores. La sintaxis es bien simple:
$ scp archivo usuario@servidor.com:ruta
Y para copiar a la inversa, desde el computador remoto al propio, simplemente se tiene que invertir el orden de los elementos:
$ scp usuario@servidor.com:ruta/archivo ruta_local
O sea por ejemplo, si se quisiera mandar algo al servidor:
$ scp hola.txt tomas@bootlog.cl:/www/sitio
Mandaría el archivo hola.txt y lo dejaría en la carpeta /www/sitio en el servidor bootlog.cl. También se puede mandar carpetas completas (con -r):
$ scp -r viajealsur/ tomas@bootlog.cl:/www/sitio/fotos
Así mandaría la carpeta /viajealsur completa a /www/sitio/fotos. En acción:
Ahora, el mismo proceso a la inversa sería:
$ scp -r tomas@bootlog.cl:/www/sitio/fotos/viajealsur ~
Esto copiaría la carpeta viajealsur/ del servidor a la carpeta /home del usuario local.
Ah, y a propósito de carpetas home, como en SCP (y en SSH) la ruta por defecto es la carpeta de usuario, si se quiere copiar algo hacia o desde ahí, se puede omitir la ruta:
$ scp cancion.mp3 bootlog.cl:
En este caso la sintaxis está bien, ya que el usuario de prueba se llama ‘tomas’ en ambos lados, así que no se tiene que escribir de nuevo, y como se esta copiando el archivo cancion.mp3 a la carpeta de usuario, también se puede omitir la ruta.
El tip: Cómo conectarse por SSH o SCP sin contraseña
Si se esta conectando siempre a los mismos equipos, o se corta la conexión, lo mas practico es generar una llave rsa
$ ssh-keygen -t rsa
Este comando genera dos archivos, id_rsa.pub e id_rsd. Se necesita copiar el contenido del primero al otro computador, específicamente al archivo authorized_keys dentro de ~/.ssh/ Primero se copia por SCP.
$ scp id_rsa.pub usuario@servidor:
Ahora se conecta por SSH y se ve si existe el archivo authorized_keys dentro de ~/.ssh/. Si ese no es el caso, se escribe:
$ mv id_rsa.pub .ssh/authorized_keys
Si el archivo existía (que significa que para ese usuario en ése PC, hay otros equipos “de confianza”). Vamos a copiar los contenidos de id_rsa.pub a authorized_keys:
$ cat id_rsa.pub >> .ssh/authorized_keys
Para copiar un archivo preservando los permisos originales del archivo:
$ scp -P archivo direccion_IP:/ruta
<< Home