lunes, 10 de junio de 2013

CONFIGURANDO ACCESO REMOTO


Para facilitar el trabajo sobre Raspberry Pi y poder trabajar directamente sobre ella desde otro equipo, veremos diferentes opciones y herramientas, concretamente, SSH para trabajar en línea de comandos, un cliente de Escritorio Remoto como TightVNC y Samba, para poder dejar en una carpeta compartida nuestros programas y scripts.
Lo primero que deberíamos hacer si no lo hemos hecho ya es configurar una dirección IP fija, tal y como se ha mostrado en la entrada "INSTALANDO Y CONFIGURANDO RASPBIAN".
Para trabajar sobre SSH tenemos dos opciones, habilitar mediante "raspi-config" el equipo como servidor de SSH ó instalarlo en línea de comandos (sudo apt-get install openssh-server).
Una vez instalado el servidor de SSH el siguiente paso será conectarnos mediante un cliente, como puede ser Putty.
Para conectarse mediante Putty el primer paso será descargarlo (Download).
El siguiente paso será configurarlo y ejecutarlo. Para evitar tener que poner todos los datos cada vez que nos conectemos, pondremos los datos de la dirección IP y guardaremos la sesión (Save), en mi caso se he llamado "Raspberry Pi". Ahora ya nos podremos conectar (Open).
Alerta inicial la primera vez que nos conectamos
Introducimos el nombre de Usuario pi y contraseña raspberry
ESCRITORIO REMOTO (TIGHTVNC)
Con el objetivo de realizar conexiones de Escritorio desde múltiples Sistemas Operativos, se ha optado por el software gratuito y libre “TightVnc” .
El primer paso es instalar el programa en nuestra RPI, para ello, partiremos de que se puede realizar una conexión mediante SSH (no es necesario pero si solivianta estos pasos repetitivos), a continuación se deben actualizar los repositorios (sudo apt-get update) y proceder con la instalación (sudo apt-get install tightvncserver), aceptando el mensaje que muestra.
Una vez instalado el programa nuestro equipo será un "servidor" que aceptará conexiones de escritorio remoto. Ahora, para poder realizar una conexión habrá que realizar una instancia en el servidor para podernos conectar desde otro equipo. Un ejemplo de instancia podría ser vncserver :1 -geometry 1024x768 -depth 24, estamos configurando la instancia 1, con una resolución de 1024x768 y una profundidad de color de 24 bit. A continuación pedirá la contraseña de conexión para los clientes.
En mi caso la contraseña seleccionada ha sido raspberry, para acordarme posteriormente.
El principal problema es que cada vez que reiniciamos esta instancia se pierde.
En este punto, podemos conectarnos mediante clientes de VNC. En la página http://www.tightvnc.com/ podremos encontrar varios clientes, si bien el Viewer de Java ha presentado problemas debido a un bug de representación de caracteres, por ello, se ha trabajado principalmente con un portable que no ha dado problemas (http://www.tightvnc.com/download/1.3.10/tightvnc-1.3.10_x86_viewer.zip).
Para conectarnos debemos indicar la dirección ip y el puerto. El puerto por defecto es 5900 pero hay que sumar el número de conexión que es 1.
En este punto debemos indicar la conexión citada anteriormente
En este punto debemos indicar la conexión citada anteriormente y ya podemos trabajar en entorno gráfico.
Fácilmente se puede configurar una aplicación similar para Android denominada VNCAndroid y trabajar mediante el móvil, es decir, !tenemos totalmente contralada la Raspberry Pi con el móvil!.
En este punto habría que preguntarse, ¿no resulta demasiado pesado tener que crear la instancia antes de conectarse?. Existe una solución que es crear un demonio que arranque al principio.
En primer lugar hay que comentar que hay siete modos de ejecución, cada uno de estos modos de ejecución X ejecuta varios scripts. En los directorios/etc/rcX.d/ se encuentran los enlaces simbólicos que se ejecutarán en el modo de ejecución X y , generalmente, estos scripts se almacenan en el directorio /etc/init.d.
En Raspbian el nivel en el que se arranca por defecto es 2, para saberlo es tan sencillo como ejecutar el comando runlevel.
En es este punto donde se debe crear un fichero que contenga el contenido que va a ejecutar el demonio, que se denominará remoto (descargary contendrá la configuración.
#!/bin/bash
### BEGIN INIT INFO
# Provides: remoto
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: vnc server
# Description: Demonio Servidor Escritorio Remoto VNC
#
### END INIT INFO
## Autor: M.Alvarez (miguelwarez@gmail.com) 2013
## Más ejemplos en http://rpiplus.sourceforge.net


PROG="Xtightvnc"

case "$1" in
start)
echo "Lanzando $PROG"
su pi -c '/usr/bin/vncserver';;
stop)
echo "Parando $PROG"
pkill -TERM $PROG;;
reload)
echo "Volviendo a cargar $PROG:"
pkill -HUP $PROG;;
restart)
echo "Reiniciando $PROG"
pkill -TERM $PROG
su pi -c '/usr/bin/vncserver';;
*)
echo "Uso: /etc/init.d/remoto {start|stop|reload|restart}"
exit 1;;
esac
exit 0 
Definimos un demonio que se puede lanzar (start), parar(stop), reload (volver a cargar), restart (reiniciar), utilizando básicamente las señales disponibles de LINUX.
Ya sólo falta dar permisos de ejecución al fichero para todos los usuarios, para ello se ha utilizado el comando chmod.
A continuación se dejará el fichero en el directorio donde se encuentran los demonios que ejecuta Raspbian.
A continuación, se van a actualizar los scripts mediante el comando update-rc.d
Se va a comprobar el correcto funcionamiento, lanzando el demonio y parándolo.
Además para comprobar que se ha creado correctamente el enlace simbólico:
Ahora ya está configurada Raspberry Pi para que cada vez que se encienda nos podamos conectar mediante escritorio remoto.
INSTALACIÓN DE SAMBA
Especialmente útil resultará tener instalado samba para poder conectarnos a una carpeta compartida en la que dejemos los programas y scripts.
Para instalar samba y un cliente deberemos ejecutar sudo apt-get install samba smbclient.
Se va a definir una carpeta compartida publica que se encontrará en el home de pi y no será visible en la red. El primer paso es crear una carpeta denominada publica con todos los permisos: mkdir -m 777 publica.
Posteriormente, se editará el fichero /etc/samba/smb.conf y se añadirá al final:
[publica$]
path = /home/pi/publica
browseable = yes
writeable = yes
guest ok = yes
Para concluir se deberá reiniciar el servicio samba, para que cargue la nueva configuración sudo /etc/init.d/samba restart.
En este momento se podrá acceder desde cualquier equipo a esta carpeta escribiendo \\dirIP\publica$
Al trabajar con Sistemas Operativos Windows y Linux se han constado errores al ejecutar shell scripts del  tipo:
bash: ./mifichero.sh: /bin/bash^M: bad interpreter: No existe el fichero o el directorio
Estos errores se deben a que en los Sistemas Operativos Windows, se insertan al final de cada línea retornos de carro y saltos de línea, mientras que en Linux se insertan sólo saltos de línea.
Para eliminar este tipo de errores se ha optado por el programa dos2unix, que elimina este tipo de problemas, convirtiendo de Dos a Unix como su nombre indica. La sintaxis es dos2unix mifichero.sh. Si tenemos problemas con el propietario, mediante el comando sudo chown pi mifichero.sh cambiaremos el propietario y ya podremos pasar el comando sin problemas.

1 comentario:

  1. Este software también es muy bueno. Funciona bien y es muy estable. Ammy Admin (http://www.ammyy.com) no requiere registrarse, instalación o configuraciones específicos. Funciona detrás de puertas de enlace NAT y LAN.

    ResponderEliminar