ssh – Sam & Max http://sametmax.com Du code, du cul Wed, 23 Dec 2020 13:35:02 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.7 32490438 Passer d’une clé Putty (ppk) à une clé OpenSSH http://sametmax.com/passer-dun-cle-putty-ppk-a-une-cle-openssh/ http://sametmax.com/passer-dun-cle-putty-ppk-a-une-cle-openssh/#comments Sat, 27 Sep 2014 12:29:25 +0000 http://sametmax.com/?p=12248 Cas d’école, mon client me donne la clé pour accéder à son instance Amazon (bouh !) et il me file une clé Putty puisqu’il est sous Windows.

Heureusement, Putty existe aussi sous nunux. Par exemple sous Ubuntu :

sudo apt-get install putty-tools

Et il embarque tout ce qu’il faut pour convertir sa clé :

puttygen cle.ppk -O public-openssh -o nouvelle_cle.pub
puttygen cle.ppk -O private-openssh -o nouvelle_cle

Y a plus qu’à mettre dans son dossier .ssh. En prime, je rajoute généralement ça dans .ssh/config :

Host ip ou domaine
HostName ip ou domaine
User username pour le server
IdentityFile ~/.ssh/nouvelle_cle

Comme ça pas besoin de sélectionner la clé manuellement à chaque connexion, si SSH voit cette IP, il me prend la bonne clé.

Mon dossier .ssh est un simple lien vers le vrai dossier dans la partition Truecrypt. Malgré la disparition du projet, j’ai pas trouvé mieux.

]]>
http://sametmax.com/passer-dun-cle-putty-ppk-a-une-cle-openssh/feed/ 6 12248
Installer SSH Plus sur Ubuntu http://sametmax.com/installer-ssh-plus-sur-ubuntu/ http://sametmax.com/installer-ssh-plus-sur-ubuntu/#comments Thu, 24 Oct 2013 13:54:49 +0000 http://sametmax.com/?p=7499 Je vous avais parlé de SSH Plus, mais sans mentionner son process d'install, un peu chiant.]]> Je vous avais parlé de SSH Plus, mais sans mentionner son process d’install, un peu chiant.

Pour rappel, c’est un petit indicateur qui vous permet de lancer une commande arbitraire. Son usage principal est d’ouvrir un terminal qui se connecte immédiatement en SSH à un serveur distant, mais on peut y mettre n’importe quoi.

Pour l’installer :

# on installe les dépendances
sudo apt-get install python-appindicator
# on se calle dans le dossier temporaire
cd /tmp
# on download le script en Python
wget https://raw.github.com/anilgulecha/misc/master/sshplus.py
# on le copie dans le dossier des exécutables
sudo mv sshplus.py /usr/bin/sshplus
# on le rend exécutable
sudo chmod +x /usr/bin/sshplus

Pour le lancer, il n’y a plus qu’à faire :

sshplus

Dans un terminal.

Moi, je le rajoute dans ma liste des programme automatiquement lancé au démarrage, comme ça je n’y pense plus (“Dash” > “Applications au démarrage”).

Après, vous pouvez lui faire lancer les commandes que vous voulez, en les mettant dans le fichier de config (~/.sshplus) en suivant la syntaxe

Nom à afficher|commande|options

Par exemple :

Server Prod 12|guake|-t -n "new" -e "ssh username@adresse_ip"

Ceci va rajouter une entrée dans le menu nommée “Server Prod 12”. Si on clique dessus, ça lance guake -t -n "new" -e "ssh username@adresse_ip", ce qui m’ouvre un nouvel onglet dans mon terminal guake avec lance la commande ssh username@adresse_ip juste après.

]]>
http://sametmax.com/installer-ssh-plus-sur-ubuntu/feed/ 10 7499
Tester une règle IPtable http://sametmax.com/tester-une-regle-iptable/ http://sametmax.com/tester-une-regle-iptable/#comments Thu, 20 Jun 2013 11:20:22 +0000 http://sametmax.com/?p=6414 Je ne sais plus du tout où j’ai lu ça, mais vu le nombre de fois où je me suis fais connement kické de mon serveur parce que j’ai joué avec iptable et ai coupé mon accès SSH, je partage.

En gros, on fait comme votre OS quand vous changez la résolution de l’écran : on attend 30 secondes et on remet la configuration précédente :

sudo iptables-save > /etc/iptables.bak && sudo iptables votre_nouvelle_regle && sleep 30 && sudo iptables-restore < /etc/iptables.bak

N'oubliez pas que le dernier sudo ne marchera pas si votre sleep dure trop longtemps (je crois que sudo ne demande pas le password dans les 5 minutes qui suivent la dernière commande avec sudo) donc n'augmentez pas trop ce chiffre.

Bon, warning, je l'ai pas encore testé (si la connexion se coupe, est-ce que le shell se ferme pas ?), donc c'est juste là pour l'inspiration.

]]>
http://sametmax.com/tester-une-regle-iptable/feed/ 18 6414
Forcer une identity SSH pour un host en particulier http://sametmax.com/forcer-une-identity-ssh-pour-un-host-en-particulier/ http://sametmax.com/forcer-une-identity-ssh-pour-un-host-en-particulier/#comments Fri, 24 May 2013 10:25:45 +0000 http://sametmax.com/?p=6211 Vous avez accumulé un certain nombre de clés SSH, et pour certains serveurs ou certains sites Web (github, bitbucket…), vous voulez utiliser une clé SSH et pas une autre. Ce serait en effet dommage de pusher votre commit Git avec la mauvaise identité.

Sous unix, le fichier ~/.ssh/config est votre ami, rajoutez lui :

Host Un alias pour l'host
HostName Une IP ou un nom de domaine pour l'host
User votre nom d'utilisateur
IdentityFile le fichier de clé public à utiliser

Par exemple :

Host bitbucket.org
HostName bitbucket.org
User sam
IdentityFile ~/.ssh/sam.pub

Host local-dev
HostName 192.169.0.10
User dev
IdentityFile ~/.ssh/local-dev.pub

On peut créer plusieurs Host pour le même hostname, avec des résultats intéressants quand on a plusieurs identités en ligne.

]]>
http://sametmax.com/forcer-une-identity-ssh-pour-un-host-en-particulier/feed/ 6 6211
Pourquoi git clone me donne un résultat différent en HTTP et en SSH ? http://sametmax.com/pourquoi-git-clone-me-donne-un-resultat-different-en-http-et-en-ssh/ Fri, 24 Aug 2012 14:27:15 +0000 http://sametmax.com/?p=1872 Il clone depuis SSH et possède la dernière version.

Je clone depuis HTTP et j’ai une version d’il y a une mois.

La raison: Git doit générer des fichiers spéciaux pour que le pull via HTTP soit à jour.

Sur le serveur, un petit:

git update-server-info

Et on est reparti comme en 40. Et pour pérenniser ça, un petit hook Git. Ca tombe bien, il est tout fait:

mv .git/hooks/post-update.sample .git/hooks/post-update

]]>
1872
Executer une commande sur un serveur distant via ssh avec Python http://sametmax.com/executer-une-commande-sur-un-serveur-distant-via-ssh/ Thu, 21 Jun 2012 23:07:28 +0000 http://sametmax.com/?p=970 Executer une commande shell sur un serveur distant peut s’avérer très utile, par exemple avoir le load average du serveur distant à monitorer, rebooter un serveur à distance, récupérer l’espace disque restant, etc.

Il y a plusieurs manières d’executer une commande shell sur un serveur distant, on peut utiliser paramiko ou un simple popen comme suit:


Pour connaitre le load average du serveur skynet:


from subprocess import Popen, call, PIPE

user= arnold
server = skynet.com
 
process = Popen(['ssh', '-t', user + '@' + server ,'cat', '/proc/loadavg'], bufsize=4096, stdout=PIPE)
output = process.communicate()[0]

Ce procédé implique d’avoir des clefs ssh configurées

Note: J’ai eu quelques problèmes de blocage lors du login au serveur distant jusqu’à ce que j’ajoute l’option -t à ssh

Edit:

En bash ça donne:

ssh arnold@skynet.com cat /proc/loadavg

ou pour avoir l’espace disque

ssh arnold@skynet.com df -h
etc.
]]>
970
Copier ses clefs SSH facilement avec ssh-copy-id http://sametmax.com/copier-ses-clefs-ssh-facilement-avec-ssh-copy-id/ Thu, 21 Jun 2012 23:05:41 +0000 http://sametmax.com/?p=724 Si vous voulez ne plus à avoir à entrer votre mot de passe lorsque vous vous connectez à un serveur distant vous pouvez utiliser les clefs ssh.


en local:

ssh-copy-id -i votre_username@votre_serveur.com


Le mot de passe vous sera demandé une seule fois, ensuite vou n’aurez plus qu’à taper :

ssh votre_username@votre_serveur.com

Note:
Vous pouvez générer une clef ssh en utilisant la commande: ssh-keygen -t rsa

]]>
724