How to securely activate SSH into your Synology DiskStation with SSH Keys and no root login

I like to have access to my private network at home, wherever I am, and for me the best choice is to have an ssh server available. I use it for privacy reasons, because i don’t want anyone to know what could be my email, what webs do i visit, etc. Like I explained while ago in Jump over private corporate proxy with Firefox (or git, or any SOCKS ready app) through a SSH tunnel.

As I’ve shutdown my own server to avoid the noise, power waste, gain some space, and to stop worrying about hardware or connection failures and I’ve recently purchased and advanced NAS (Synology DiskStation) I would to explain how to securely active ssh on it.

The Synology DiskStation supports both telnet and SSH, but you should never use telnet when dealing with passwords or when you don’t want to be spied, as it is completely insecure.
Everyone should instead use SSH as it is very secure and almost the standard option.

Synology DiskStation DS211
Synology DiskStation DS211

How to enable SSH and users to login

It’s easy to enable SSH on your DiskStation by going to Control Panel > Terminal & checking the box next to Enable SSH Service.
You can now log in with your root username & password. If you need to login with any other user, you need to enable user’s home and let them use login with a shell.
To enable your user’s home, go to Control Panel -> User -> User Home -> There enable the user home service.
To enable your user’s to login with a shell, you have to edit the file /etc/passwd. Here is an example with the common contents when you have 2 users, one with a enabled shell (/bin/sh) the other without:

How to enable SSH with SSH keys

But that’s not enough. Logging in with a username and password isn’t nearly as secure as requiring SSH keys. When you use password based authentication, anyone can try to reach the port and use bruteforce to gain login credentials.
With public keys authentication, you have a private key on your computer, a public key on the SSH server (the Synology DiskStation in this case). When someone tries to log in via SSH, the server looks at the public key and asks for the corresponding private key. No private key, no login.
NOTE: I’m assuming that you have already generated SSH keys. If you haven’t, you can easily find instructions on the Web.
The needed SSH daemon’s config file to allow access via keys differs from original in :
Edit /etc/ssh/sshd_config using vi, I’ve highlighted in a shortened example the changed options to harden SSH:

Save the file and restart the SSH daemon. The easier is to use the GUI/WEB login. Click on the Control Panel -> Terminal. Uncheck Enable SSH Service, apply, check it again, and press apply again.

Enabling your user public key in authorized_keys

Of course you have to copy to your home directory your ssh public key inside a ssh directory and file called authorized_keys. I would recommend to be careful with permissions.

Try logging in now, with a username enabled to login. You won’t be prompted for a password; instead, you’ll get a nice shell see:

To test our hardening Try logging in now, but use a username that doesn’t exist on the server. You won’t be prompted for a password; instead, you’ll see:

No key, no admittance. No passwords accepted. Excellent.

Extra point. No root login, just for localhost.

An allowed ssh root login for a hacker/juanker is like honey for a bear.
So what we will do is to enable ssh public key access just for our localhost..

Edit /etc/ssh/sshd_config using vi, I’ve highlighted in a shortened example the changed options to harden SSH:

And, next, include this Match rule at the end of file, as Match rules may affect all config options below it. Using without-password we allow root login using public key.

One more step is needed, repeat point “Enabling your user public key in authorized_keys” for root user.

Save the file and restart the SSH daemon. The easier is to use the GUI/WEB login. Click on the Control Panel -> Terminal. Uncheck Enable SSH Service, apply, check it again, and press apply again.

Extra point enable root login from a shell using su. DEPRECATED

Of course we still need to have root access to Synology, anything can happen.
If along any of the steps, or whatever, you have seen this error message while trying to use ‘su’:
‘su: must be suid to work properly

What is happening is that permissions on binary /bin/busybox are “wrong”, run this as root to fix it.


Restart ssh server from CLI

If you want to restart your ssh server from CLI, use this script. Running it in background guarantees that the command will be completed. Because when you launch it, your currrent ssh session will be lost/closed.


For some reason, this command is not fully restarting the server or not loading the modified config, so, a workaround in order to restart the ssh server is to restart the whole system.


This adds a nice layer of security, but it also means that you’d better keep backups of your SSH keys, or you are hosed!
If you’ve fucked up and you can’t get a root shell or you need help because using vi is boring, try to look for a config file editor

Jump over private corporate proxy with Firefox (or git, or any SOCKS ready app) through a SSH tunnel

Thanks a lot to text producers. I’ve just copied it here to promote them.

Making the ssh tunnel

Option 1: ssh and direct connect (SOCKS5) : The following line will start the ssh client and connect to Port 8080 on localhost ( will listen for requests and send them to the remote machine. The remote machine will then send the packets out as if they originated from itself. The ssh options are in the man page of ssh, but to summarize them in order: Compression, SSH2 only, Quite, Force pseudo-tty allocation, Redirect stdin from /dev/null, and Place the ssh client into “master” mode for connection sharing.

ssh -C2qTnN -D 8080

Option 2: ssh to squid proxy (HTTP/SSL Proxy) : The following line will also start the ssh client and connect to Port 8080 on localhost ( on the current machine will listen for requests and ssh tunnel them to the remote machine. On the remote machine ssh will forward the packets to localhost port 2020. If squid is listening on localhost port 2020 on the remote machine then all requests sent though the ssh tunnel will then be forwarded to squid. You can use squid to block ads and speed up web access. If you need assistance with squid, check out the Squid “how to” page.

ssh -C2qTnN -L 8080:localhost:2020

Using GIT through a SOCKS proxy

user@debian-machine:~$ cat /somepath/bin/proxy-wrapper
# on Debian systems you will need netcat-openbsd package in order this options to work
user@debian-machine:~$ export GIT_PROXY_COMMAND=”/somepath/bin/proxy-wrapper”
user@debian-machine:~$ git clone git://
Initialized empty Git repository in /blableblubla/codigo/git/eeepc-acpi-scripts/.git/
remote: Counting objects: 1050, done.
remote: Compressing objects: 100% (554/554), done.
remote: Total 1050 (delta 572), reused 848 (delta 475)
Receiving objects: 100% (1050/1050), 115.39 KiB | 37 KiB/s, done.
Resolving deltas: 100% (572/572), done.

Links and references

Búsqueda rápida en el demonio negro

Hace ya unos meses que está en funcionamiento esta extensión para Firefox & derivados que lo implementen.
Se me ocurrió hacerlo mientras repasaba una entrada sobre plugins y extensiones para firefox. Me entretuve en crear un plugin para hacer búsquedas directamente en la bitácora, sin tener que entrar en la página y usar el formulario de búsqueda.

Una de las cosas por las que mantengo esta especie de cuaderno de bitácora es, como su propio significado denota, para archivar cosas que he hecho en una determinada fecha. Aunque no sean rumbos marítimos, me gusta el nombre. Es como un diario aunque no tiene la misma privacidad, todo lo contrario, busco consejo y opinión.
Por eso poder buscar cómoda y rápidamente me interesa.

El proceso es muy sencillo. Una vez creas el archivo que contiene la descripción de búsqueda, colocas un enlace especial en la cabecera de tú página y el propio firefox se encarga de mostrarle al usuario la posibilidad de añadir el Buscador de EDN (en este caso) a su barra de búsqueda rápida.

Contenido del archivo opensearch.xml.

aristoteles:/usr/share/wordpress# cat opensearch.xml
<OpenSearchDescription xmlns=””
xmlns:moz=”” >
<ShortName>Buscador EDN</ShortName>
<Description>Busca en todo el contenido de El Demonio Negro por el tema que te interese</Description>
Copyrigth El Demonio Negro. Licencia Creative Commons 2.5. Dristribuir bajo misma licencia y respetar/mencionar autoría.
<Url type=”text/html” method=”get” template=””>
<Param name=”submit.x” value=”0″/>
<Param name=”submit.y” value=”0″/>
<Param name=”submit” value=”Iniciar+busqueda”/>
<Param name=”s” value=”{searchTerms}”/>

Para que salga el icono hay que empotrarlo con un formato especial.

Modificación en la cabecera de la página.


<link rel=”search” type=”application/opensearchdescription+xml” title=”Busca en El Demonio Negro” href=”” />


Vídeo ilustrativo titulado “Búsqueda rápida en el demonio negro”:

Video miniatura. Pulsa para reproducir

Si te interesa verlo a mejor calidad descarga y visualiza el archivo original en formato OGG.
[] uso del motor de búsqueda rápida de END [en formato OGG]

Un consejo de uso de alguien que pasa mucho tiempo en Internet, como yo, buscando soluciones a problemas. En firefox (otros navegadores lo harán a su manera), con la combinación de teclas <control>+ t y <control>+ k, abrimos una pestaña nueva y nos situamos en la caja de búsqueda rápida para realizar una búsqueda sin usar el ratón. Lo que no se es la combinación de teclas para cambiar entre los distintos buscadores.

Descargas y referencias:

Creating OpenSearch plugins for Firefox
Búsqueda rápida en el demonio negro (

Navegadores zopencos y esquinas redondeadas en CSS3

Estoy navegando por mi página después de varios días de retoques en un Internet Explorer (aaaaaahh) y estoy viendo que hay cosas que no tienen nada que ver con lo que yo veo en otros navegadores.
Comunico esto porque sé que muchos usáis ese programa para navegar. Hacéis mal, pero cada uno es libre de hacerse el harakiri con lo que más le guste.

Otro ejemplo más comprensible por la población mundial.
Vendehumos – Pueden elegir ustedes entre un chalé con parcela, piscina, seguridad, tatatata y gratis…
O vivir en una estupendísima y ancestral corrala con el agua justa (sin agua), con estufa de leña (sin calefacción), donde recibirán visitas trepidantes (lo mismo les roban sus tarjetas o les estafan) ….
Personaje – ¿Qué eligemos, cariño, amor, mi vida?
Amor – Es que, según el catálogo, los dos tienen puertas, ventanas y habitaciones.
Vendehumos – Perdonen, hombre, pueden ustedes probar a vivir un mes en uno y otro en el otro. Totalmente gratis.
Amor – Por un tiempo…
Vendehumos – Tiene la pega de que el chalé le pueden poner lo que ustedes quieran, también gratis: muebles, electrodomésticos, metro, bus, domótica. Lo bueno es que en la corrala esto no es así, nunca tendrán que cambiar nada (jeje, no podrán, ni aunque contraten los mejores albañiles).
Vendehumos Pensativo – (Me apuesto el culo a que después de probar ambos vuelven y me dicen que [CONTINUARÁ…])

Si te gusta leer lo que en esta página se escribe te recomiendo cambiar de navegador. Es por ser cansino. Se que no es una buena estrategia para convencer a nadie, pero si no confiáis en lo que digo, quisiera saber cuál es la razón. Como a mi te toca los cojones que a pesar del tiempo y el esfuerzo en hacer las cosas agradables y bien llegue un puto navegador, hecho por unos putos prepotentes e ignorantes (mirar las pruebas más adelante), y no le salga de la polla representar lo que yo le digo
Que paso, que no, ya esta. El que quiera ver la página bien que use Firefox.
En realidad, cualquiera de los navegadores que usan el motor de renderizado Gecko (Iceweasel, Epiphany, Firefox, Mozilla, Netscape, Galeon, Camino, Flock, etc).

Tiene nombres mil

Continue reading “Navegadores zopencos y esquinas redondeadas en CSS3”