comando OpenSSH

Comando SSH: come utilizzarlo al meglio

See the article in English

Diamo per scontato di sapere cosa sia e come utilizzare il comando ssh per connetterci normalmente ad un server.

Definizioni iniziali

Supponiamo  di aver a disposizione un server “mioserver” dove poterci collegare con l’utente “mioutente“,  magari dopo aver attivato  la vpn della server farm.

Quindi ci connetteremo con il comando

ssh mioutente@mioserver

Chiave pubblica e privata del comando ssh

Se non abbiamo ancora creato le nostre chiavi pubbliche/private ssh direi che è l’ora di farlo tramite il comando

ssh-keygen

Le chiavi create sono sotto $HOME/.ssh/id* e le pubbliche finiscono con .pub

A questo punto il client ssh durante la connessione tenterà prima di connettersi con la chiave e se non è possibile (perché nel server non c’è) utilizzerà l’autenticazione successiva disponibile.

Per copiare la chiave sul server “mioserver” bisogna prima aggiungere la chiave pubblica nell’agente di autenticazione ssh (ssh-agent).

Supponiamo che l’agente sia stato attivato automaticamente dalla sessione grafica (gnome o kde lo fanno automaticamente), controlliamo che sia attivo con il comando

pgrep ssh-agent

Nel caso non lo sia utilizziamo una shell che lo racchiude tramite il comando:

ssh-agent /bin/bash

A questo punto aggiungiamo, sbloccandola, la chiave ssh

ssh-add

Per importare la chiave sull’host “mioserver” utilizziamo il comando

ssh-copy-id mioutente@mioserver

 Cambio password privata

Supponiamo di voler ad un certo punto cambiare la password della chiave privata. Basta il semplice comando

ssh-keygen -p

Come lanciare un comando ssh remoto

Per lanciare un comando remoto basta passarlo come ultimo parametro al comando ssh.

Supponiamo ad esempio di volere la lista dei file della home page di “mioutente” su “mioserver

ssh mioutente@mioserver ls -alh

Per fare, invece,  il backup di tutta la home con il comando tar e salvare tutto in locale tramite comando ssh, lanciamo

ssh mioutente@mioserver tar czvf - . >miobackup.tgz

Utilizzare ssh come server/proxy SOCKS5

Supponiamo di voler utilizzare “mioserver” come server/proxy SOCKS5 e configurarlo sul browser locale

ssh mioutente@mioserver
mioutente@mioserver:~$ ssh -N -D 8080 localhost

A questo punto basta configurare nel browser l’utilizzo del server “mioserver” su porta “8080” come SOCKS5 e navigare.
Aggiungere l’opzione “-f” di ssh per lasciare il comando in background.

Come redirigere una connessione remota in locale tramite ssh

Supponiamo che l’host “mioserver” sia autorizzato ad accedere su una DMZ al server mysql della server farm, per poter accedere direttamente anche con il computer locale al server mysql possiamo lanciare il comando

ssh -L 3333:mysql_server_name_o_ip:3306 mioutente@mioserver

Lasciando il comando attivo ora abbiamo un canale/tunnel criptato tra il computer locale e “mioserver” sulla porta locale 3333 che si connette direttamente al server mysql in DMZ (di nome mysql_server_name_o_ip).
Possiamo quindi connetterci direttamente al server mysql con il comando

mysql -P 3333 -h 127.0.0.1 -u mioutentemysql -p miodatabasemysql

Oppure se si preferisce utilizzare phpMyAdmin basta installarlo in locale e configurarlo sulla porta locale 3333.

Per togliere il canale criptato basta chiudere la connessione ssh.

Redirigere un servizio locale in remoto

Supponiamo di volerci connetterci da casa al pc dell’ ufficio (che può accede al server “mioserver” in server farm)  non raggiungibile nemmeno in VPN; basta che dal pc di ufficio lanciamo il comando ssh:

ssh -N -f -R 2222:localhost:22 mioutente@mioserver

lasciandolo attivo (senza spegnere il computer).
Da casa basta abilitare la VPN per poter raggiungere “mioserver” e connettersi al server

ssh mioutente@mioserver
mioutente@mioserver:~$ ssh -P 2222 utente_pc_lavoro@localhost
utente_pc_lavoro@localhost:~$

In tal modo si riesce ad entrare nel pc dell’ufficio da casa.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

4 + 2 =