enable ssh session using keys instead of password in dokku

ssh

We have a Dokku server installation. You can run remote commands to ease up a little bit the administration tasks.
So, to avoid the need to logon the server and run some dokku commands I needed to configure ssh keys.
First, let’s create our keys -if you haven’t yet-

ssh-keygen -t rsa

let’s copy our public key to the clipboard.

cat ~/.ssh/id_rsa.pub | xclip -selection clipboard

you can add the second command to an alias in the file ~/.bash_aliases if you wish

alias cb=’xclip -selection clipboard’

so the previous command would be

cat ~/.ssh/id_rsa.pub | cb

then we can paste our public key to the authorized clients on the server

ssh joe@dokku.me
sudo su
cd /home/dokku/.ssh
cat >> authorized_keys
press CTRL-SHIFT-V
press CTRL-C

you must prepend your public key (your key starts with the type, ssh-rsa in this case) in the authorized_keys file with the following configuration (this should have been done when installing dokku)

command=”FINGERPRINT=SHA256:qriqw51R00ha3WHe5Zo987APhwxolya3Sv5Dvwm/fqE NAME=\”admin1\” `cat /home/dokku/.sshcommand` $SSH_ORIGINAL_COMMAND”,no-agent-forwarding,no-user-rc,no-X11-forwarding,no-port-forwarding ssh-rsa AAAAB3Nza…

done!

now you can exit the server and run a remote command from your machine

ssh -t dokku@dokku.me apps:list

Anuncios

Ubuntu 13.10 – Credenciales para conectar a un recurso compartido vía samba

Es común tener carpetas compartidas en nuestros lugares de trabajo. Para conectarte a una carpeta compartida de Windows en Ubuntu 13.10 sólo tienes que abrir el nautilus y poner en la barra de direcciones la ip o el nombre de la computadora con el recurso compartido de la siguiente manera (también puedes seleccionar el menú Files->Connect to Server)

smb://192.168.0.2/

opcionalmente el nombre de la carpeta

smb://192.168.0.2/Compartido

Si necesitas conectarte como un usuario distinto al tuyo, basta con agregar en la url el nombre del usuario

smb://jhondoe@192.168.0.2/Compartido

si seleccionas guardar la contraseña para la conexión y después la quieres eliminar, puedes administrarla a través de la aplicación ‘passwords and keys’ (seahorse)

git – autenticación con llave privada

Si has configurado un servidor local necesitarás configurar al cliente con las llaves que generaste.

Lo único que tenemos que hacer es ejecutar el comando

ssh-add /ruta-a-tu-llave/mi-llave-rsa

nos debe pedir la contraseña (passphrase) de nuestra llave privada.

Con esto ya podríamos sincronizar nuestro repositorio con el servidor remoto

git pull origin master

o

git fetch origin master

Cuando reiniciemos nuestra máquina será necesario volver a ejecutar el comando ‘ssh-add’ e ingresar nuestra contraseña. Si quieres evitar esto, tendrías que remover la contraseña de la llave privada (lo cual no es recomendable) de la siguiente manera

ssh-keygen -p /ruta-a-tu-llave/mi-llave-rsa

ingresar tu calve anterior y dejar en blanco la nueva. Una vez hecho esto debes agregar la siguiente línea al archivo “~/.profile”

ssh-add /ruta-a-tu-llave/mi-llave-rsa &> /dev/null

este comando se ejecutará al iniciar tu sesión y ya no te pedirá el passphrase al intentar sincronizar.


Usuarios Windows

Para agregar tu llave privada en Git Bash, necesitas ejecutar los siguientes comandos.

Primero copiamos nuestra llave privada a la ubicación por default

cp /ruta/llave_privada_rsa ~/.ssh/id_rsa

con esto te pedirá la contraseña de tu llave privada cada vez que ejecutes un comando como “git fetch” (suponiendo que tenga clave).

Si no quieres estar tecleando tu contraseña cada vez, puedes utilizar un agente. Para ello, primero tenemos que levantar el servicio con el siguiente comando

eval `ssh-agent -s`

(notensé las comitas invertidas o backticks)

Una vez iniciado el agente, le pedimos que agregué nuestra llave

ssh-add

al invocarlo sin parámetros, utiliza la llave por default (~/.ssh/id_rsa)

Fuentes:
http://stackoverflow.com/questions/3466626/add-private-key-permanently-with-ssh-add-on-ubuntu
http://serverfault.com/questions/345103/public-key-authentication-ssh-asks-for-passphrase-after-rebooting-local-machin
http://winscp.net/eng/docs/faq_passphrase
http://stackoverflow.com/questions/112396/how-do-i-remove-the-passphrase-for-the-ssh-key-without-having-to-create-a-new-ke
http://stackoverflow.com/questions/4083079/how-to-run-git-ssh-authentication-agent

Linux – Obtener un hash MD5 desde la linea de comandos

En sistemas UNIX y GNU/Linux se utiliza el algoritmo MD5
para calcular el hash de las claves de los usuarios. En el disco
se guarda el resultado del MD5 de la clave que se introduce al dar de
alta un usuario, y cuando éste quiere entrar en el sistema se compara el
hash MD5 de la clave introducida con el hash que hay
guardado en el disco duro. Si coinciden, es la misma clave y el usuario
será autenticado.

Wikipedia

Hay ocasiones que olvidamos la contraseña, o simplemente queremos insertar un usuario directo en la tabla donde almacenamos el “hash”. Bueno, pues para generar este hash lo podemos hacer desde la linea de comandos de la siguiente forma:

echo -n “secret_password” | md5sum –

El guión al final es opcional

es importante el parámetro -n en el comando echo para que no agregué un carácter de salto de línea