¿Cómo usar SSH (comandos ssh y rsync)?

44

¿Cómo puedo usar SSH con un servidor remoto para poder examinar archivos y editarlos? Tengo un nombre de usuario y contraseña para usar.

el_pup_le
fuente

Respuestas:

49

SSH viene por defecto en todas las versiones de Ubuntu, por lo que ahorra tener que instalarlo (+1 por tenerlo ya allí;))

Excepto, por supuesto, en el caso en que desee un servidor SSH para su servidor Ubuntu. En ese caso lo harías

sudo apt-get install openssh-server 

lo que debería hacer que su computadora / servidor esté listo para ser un servidor ssh.

Usarlo es bastante fácil:

ssh USER@SITEpor ejemplo, si mi nombre de usuario es cyrex y el sitio es ubuntu.com, entonces haría esto:

ssh [email protected]

Ahora supongamos que desea copiar un archivo llamado bubblegum.txtdesde su computadora a su sitio de ubuntu y desea dejar ese archivo en la /var/wwwcarpeta en el sitio de ubuntu. puede hacer esto (suponiendo que su usuario tenga suficientes permisos en el sitio de ubuntu) utilizando Brother, SCP de SSH (que también viene por defecto en Ubuntu):

scp bubblegum.txt [email protected]:/var/www 

Observe la relación :entre el USUARIO @ SITIO y la carpeta donde desea copiarlo. Es el que separa ambos elementos.

Ahora digamos que está cargando un archivo enorme con scp y luego sucede lo peor, el mundo explota. ¿Cómo puedes seguir subiendo ese archivo al servidor? Luego tienes el hermano mayor de SCP, rsync (viene por defecto en Ubuntu). En muchos sentidos, scp y rsync hacen lo mismo, pero aquí hay algunas grandes diferencias entre ellos:

  • rsync puede cargar archivos parciales que quedan de rsync o scp después de una desconexión o dominación mundial.
  • rsync puede mostrar el progreso mucho mejor que scp
  • rsync puede optimizar la carga de tal manera que realmente puede ahorrar segundos o minutos en la carga. También muestra al final de la carga cuánto ha ahorrado.

De todos modos, en el caso de que scp no pueda cargar todo el archivo, aquí es donde rsync entra a rescatar. (Gracias a Marco Ceppi por el consejo. Vote su comentario si le gustan los gatos ... y / o los perros)

Digamos que hiciste la mención de carga anterior de scp y llegó al 60%. ¿Cómo puede continuar en ese 60% sin perder el valor de sus tiempos para la carga? Harías esto:

rsync --progress --partial bubblegum.txt [email protected]:/var/www  

Esto le dice a rsync que muestre el progreso de una manera agradable y legible con la --progressbandera. También le dice a rsync que verifique y continúe desde donde llegó el archivo bubblegum.txt con la --partialbandera. También puede simplificar la cantidad a escribir con el parámetro -P que es el mismo que --progress y --partial, por lo que lo anterior se vería así:

rsync -P bubblegum.txt [email protected]:/var/www  

Incluso puede CTRL+ Ccargar y reanudarlo haciendo el comando de rsync anterior. Es genial tener la capacidad de reanudar algo en cualquier momento y cantidad de veces.

Para obtener más información sobre rsync, que viene por defecto con Ubuntu, puede escribir los siguientes comandos de terminal:

man rsync  
info rsync  
rsync --help

Ahora para especificar un puerto para SSH. Para especificarlo, puede hacerlo así:

ssh [email protected] -p PORT. Por ejemplo: ssh [email protected] -p 1234para decirle que use el puerto 1234 para el servicio SSH. Esto debe configurarse primero en el servidor para que funcione.

Para configurarlo simplemente abra en el servidor el archivo ssh_config así: nano /etc/ssh/ssh_configy cambie la línea que dice # port 22a otro puerto. También recuerde eliminar el comentario de esa línea. Debería verse así: port 1234en el caso del ejemplo anterior.

Ahora solo reinicie el servicio ssh en el servidor y ya está. Para reiniciar el servicio solo haz esto:

sudo restart ssh

o

sudo /etc/init.d/ssh restart

NOTA - También puede usar SSH desde herramientas GUI como las filezillaque ofrecen la opción de usar ssh en lugar de ftp. También se puede acceder a ssh desde el menú de Ubuntu:

ingrese la descripción de la imagen aquí

que le da acceso a varias opciones, incluyendo Windows share, SSH y FTP :

ingrese la descripción de la imagen aquí

Para obtener más información sobre SSH, puede usar uno de los siguientes comandos en la consola en su cuadro de Ubuntu:

man ssh  
info ssh  
ssh --help
Luis Alvarado
fuente
¿A qué te refieres lo siento?
Luis Alvarado
23

Si desea navegar por el servidor a través de Nautilus como lo hace con los archivos en su máquina local:

  1. Abra Nautilus ("Carpeta personal")
  2. Vaya a "Archivo" -> "Conectar al servidor"

    Conectar al servidor

  3. Seleccione "SSH" en "Tipo de servicio"

  4. Ponga la dirección IP o dominio bajo "Servidor"

    Seleccione SSH

  5. Agregue su nombre de usuario y marque "Agregar marcador" si desea guardar la ubicación en sus marcadores.

La carpeta debería abrirse para ti.

jamesadney
fuente
En Kubuntu se puede hacer lo mismo con Krusader .
Adobe
6

Puede usar sshfspara montar un directorio remoto en su sistema de archivos local.

Ver https://help.ubuntu.com/community/SSHFS :

Uso de línea de comando

Ahora, suponiendo que tenga un servidor SSH ejecutándose en una máquina remota, simplemente ejecute el comando SSHFS para montar el directorio remoto. En este ejemplo, el directorio remoto es / projects en el host remoto lejos. El punto de montaje local es ~ / far_projects.

mkdir ~/far_projects
sshfs -o idmap=user $USER@far:/projects ~/far_projects

Para desmontar,

fusermount -u ~/far_projects

Para agregarlo a su / etc / fstab,

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0

Tenga en cuenta que debe cambiar $ USER a su nombre de inicio de sesión al editar fstab, pero no es necesario al escribir comandos (el shell lo hace por usted en ese caso).

Stacey Richards
fuente
4

Suponiendo que el servidor ssh ya está configurado, abra una terminal y escriba:

ssh username@hostname

Se le pedirá su contraseña; solo ingrésalo. Si necesita un número de puerto, agregue -p PORTNUM.

Dang Khoa
fuente
2

Si puede usar Vim, Pico, etc., puede usar el terminal:

ssh [email protected]

Ingrese su contraseña y estará listo. A partir de ahí, es como una terminal normal, excepto que no tiene GUI.

Tenga en cuenta que puede agregar la opción '-X', y si su servidor tiene un servidor X configurado, puede ejecutar programas GUI. Simplemente escriba su nombre si agregó -X y se abrirá una ventana GUI.

Ahora, probablemente desee configurar un inicio de sesión sin contraseña. Si aún no tiene una clave, escriba ssh-keygeny simplemente presione Intro para todos los valores predeterminados. Entonces hazlo ssh-copy-id [email protected]. Una vez hecho esto, simplemente escriba ssh [email protected]y no tendrá que ingresar su contraseña.

Si su nombre de usuario es el mismo que el de su computadora portátil, no es necesario MYUSER@. Solo puedes hacer ssh mysite.com. También puede usar la -l MYUSERopción en lugar deMYUSER@

Si desea una GUI, Nautilus puede hacer esto. File ->Connect to Server ->[seleccione 'SSH', luego complete los datos de inicio de sesión] -> Connect.

Si solo desea copiar un solo archivo, use scp [copia segura].
scp [email protected]:path/to/file.dat ./

Esto copia el archivo "~ / ruta / a / file.dat" en su directorio actual. Tenga en cuenta que si no tiene una barra inclinada o tilde después :, actuará como si estuviera en su directorio de inicio [ ~/]. Si desea cargar, scp ./local_file.dat [email protected]: eso lo colocará en el directorio de inicio.

Mate
fuente
0

ssh -X -C user@host nautilus --no-desktop ir en modo gui :)

morgie
fuente
El Nautilus local solo puede conectarse a un recurso compartido SSH. No es necesario ejecutar Nautilus de forma remota. En realidad no recomendaría hacer eso. Sugerencia creativa, pero aún así -1
Jo-Erlend Schinstad