Instantly share code, notes, and snippets.

@jbourassa /notes.md
Last active Aug 29, 2015

Embed
What would you like to do?
Notes de “SSHez-vous?”, présentation par @jbourassa et @j15e au OpenCode XVIII

SSH

Basic intro

ssh user@host -p PORT

ssh user@host __command__

Config file (~/.ssh/config)

Info de base

  • Host (alias)
  • User
  • Port
  • HostMame
  • IdentityFile

Speed gain

time ssh rita ls
Host *
    # don't try to authenticate with Kerberos
    GSSAPIAuthentication no
    GSSAPIKeyExchange no
    # persist the ssh connection for 5 minutes
    # subsequent ssh connections respond faster because its reusing an existing connection
    ControlMaster auto
    ControlPath ~/.ssh/master-%r@%h:%p
    ControlPersist 5m
    
    # Pas sécure trop trop, mais + rapide
    CheckHostIP no


# Pas mal plus rapide maintenant!
time ssh rita ls

Autres options pour épater la gallerie

# Beau dessins
VisualHostKey yes

+--[ RSA 2048]----+
|      o   oo     |
|     + o oE .    |
|    o . oo       |
|     .  o.       |
|      ..S        |
|      ..         |
|     o  .        |
|    o.. .o..     |
|   ....o**+o.    |
+-----------------+

SCP

scp rita:files/file1.txt ~/Desktop

C'est tanant taper les paths au complet, utilisons plutôt la complétion scp avec...

source /usr/local/etc/bash_completion


# Récursif
scp rita:files/* ~/Desktop/files_from_rita/
scp -r rita:files/ ~/Desktop/files_from_rita

# Conserver les permissions et temps
scp -p rita:some/ ~/Desktop/

# Ouvrir dans vim
vim scp://rita/files/file2.txt

# SCP moins sécure mais plus rapide
scp -c blowfish rita:files/ ~/Desktop/

# SCP pas sécure pentoute mais plus rapide
scp -c none rita:files/ ~/Desktop/

# Direct d'un serveur à l'autre
scp rita:/source/ armand:/dest/

# Limite de bandwith (ex. 56k)
scp -l 56 rita:/source/ armand:/dest/


# D'un serveur à l'autre via local
# (ex. 2 réseaux qui peuvent pas se parler directement)
scp -3 rita:/source/ goerge-en-prison:/dest/

Ok, on fait quoi avec ça?

ssh rita 'mysqldump opencode -u root -p_PW_'
ssh rita 'mysqldump opencode -u root -p_PW_' > db.sql
ssh rita 'mysqldump opencode -u root -p_PW_' | mysql -u root opencode


ssh rita -t htop

sshfs

brew install sshfs

sshfs rita: ~/Desktop/rita_fs/

ForwardAgent / Proxy

ForwardAgent: fait suivre ton accès sur la machine, permet donc de SSHer vers une autre machine. Par la bande, ça permet de faire des opérations git via ssh; c'est très utile pour déployer (ie: avec Capistrano)

ssh-add
ssh -A rita
ssh -A user@other_server

Automatiquement passer par une SERVER_1 pour atteindre SERVER_2. Autrement dit, ssh __ALIAS__ connecte à SERVER_2 en passant par SERVER_1 Usecase : firewall whitelist ip only + ip variable

Host __ALIAS__
    User SERVER_2_USER
    HostName SERVER_2_HOST
    ProxyCommand ssh SERVER_1_CONFIG -W %h:%p

Socks Proxy

Ou comment avoir l'air d'un américain n'importe où dans le monde

ssh -ND 9999 __machine___

Script qui setup le proxy automatiquement sur OSX: greecard

Alternatives à OpenSSH?

Dropbear : pour embeded-os (arduino, routeurs, etc, mais compile aussi sur OS X)

https://matt.ucc.asn.au/dropbear/dropbear.html

ZOC : GUI propriétaire

http://www.emtec.com/zoc/

SecureCRT : GUI propriétaire

http://www.vandyke.com/products/securecrt/mac_osx.html

@sylvainfilteau

This comment has been minimized.

sylvainfilteau commented Feb 2, 2014

Dans la section "Ok, on fait quoi avec ça?", la troisième commande je pense que ça devrit être un pipe et non une redirection :

ssh rita 'mysqldump opencode -u root -p_PW_' | mysql -u root opencode

La redirection inverse est plus touché quand tu le sais pas :

mysqldump opencode -u root -p_PW_ | ssh rita 'cat | mysql -u root opencode'
mysqldump opencode -u root -p_PW_ | ssh rita 'cat > db.sql'

Il y a aussi la compression live du flux SSH avec l'option -C, probablement plus safe que de changer de cipher

Ce lien est intéressant aussi pour faire un proxy à travers un tunel SSH. C'est pour OSX seulement mais j'imagine que c'est possible d'adapter pour Linux: https://github.com/melvinsh/osx-proxy/

@jbourassa

This comment has been minimized.

Owner

jbourassa commented Feb 5, 2014

^ Nice catch, merci.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment