Durante la etapa de aprendizaje o desarrollo con PHP y Laravel es muy común conectarse a Homestead para ejecutar comandos con Artisan en nuestro proyecto, ya sea para generar archivos, correr migraciones o ver la lista de rutas que tiene nuestra aplicación.

Constantemente abrimos la terminal y nos dirigimos al directorio donde esta el archivo vagrant de nuestro Homestead para después ejecutar el comando:

vagrant ssh

Con el tiempo, esta tarea se vuelve tan tediosa que nuestra propia mente rechaza la idea de hacerlo.

Solucionar esto es muy simple :), vamos a ver!...

Te dare un pequeño tip que muchos principiantes no conocemos cuando iniciamos en esto.

Si estas utilizando un sistema operativo como OSX o alguna distribución de Linux estas de suerte!, si usas Windows, no te preocupes, puedes instalarte un shell como el de linux con Babun o Cygwin.

Crear el Archivo de configuración de SSH

La mayoría de los sistemas operativos basados en unix tienen instalada la herramienta SSH para conectarse con otros clientes de manera remota, segura y por la terminal.

Para hacerte la vida más fácil, SSH puede leer la configuración de conexión a los clientes remotos desde un archivo.

Este archivo debe existir en el directorio ~/.ssh/. Si este directorio no existe en tu home (~) puedes crearlo con:

mkdir ~/.ssh

Dentro de este directorio debes crear un archivo con el nombre config:

touch ~/.ssh/config

Ahora ábrelo con el editor nano o con tu editor favorito. Yo prefiero nano por que es un editor muy simple y fácil de usar:

nano ~/.ssh/config

Describir la Configuración de los Hosts

Dentro del archivo config agregaremos las siguientes lineas:

Host homestead
  HostName 192.168.10.10
  Port 22
  User vagrant
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes

Host

Esta linea nos permite darle un nombre a toda la configuración de un host, este es el nombre que le daremos a ssh para que haga la conexión.

HostName

Es la dirección IP del host al que deseamos conectarnos. Homestead siempre usa la dirección ip 192.168.10.10.

Port

Es el puerto donde nuestro host esta escuchando conexiones por ssh. Homestead utiliza el puerto 22.

User

Es el nombre de usuario con el que te conectas al host remoto. Homestead ya cuenta con el usuario vagrant.

IdentityFile

Es la llave privada para realizar la conexión. Esta llave la puedes encontrar en el directorio ~/.ssh.

Es importante tener esta opción porque nos permitirá conectarnos sin que el host remoto nos solicite la contraseña del usuario.

NOTA: Solo tú debes tener acceso a esta llave, si alguien mas la obtiene, podrá conectarse a cualquiera de tus hosts!.

IdentitiesOnly

Cuando ponemos esta opción con el valor yes, le estamos indicando que solo permita hacer las conexiones al host utilizando la llave, evitando que nos pida la contraseña si la conexión no puede realizarse.

Esta es toda la configuración que debes agregar en este archivo, para guardar los cambios hechos, presiona las teclas ctrl+x, nano te preguntara si quieres guardar los cambios, presiona la tecla y.

Probando la Conexión

Para probar que tu configuración sea correcta, abre una terminal y ejecuta el siguiente comando:

ssh homestead

Si después de ejecutar el comando una sonrisa se dibuja en tu cara, felicidades!!!, has convertido una tarea tediosa en algo trivial, y lo mejor de todo es que funciona desde cualquier directorio donde te encuentres en la terminal.