SSHPass hide password

Rédigé par gorki - - Aucun commentaire

Le problème :

Je n'ai pas toujours la possibilité de déposer ma clé publique sur les serveurs distants auxquels je me connecte.

Heureusement SSHpass est là, mais comme indiqué dans la documentation, il ne s'embête pas à essayer de cacher le mot de passe.

Je n'utilise pas les solutions comme PAC Manager car leur shell intégré est moins bien que le shell que j'utilise.

Solution :

SSHpass propose l'option "-e" qui permet de lire le mot de passe depuis une variable d'environnement.

Je créé un script de connexion dans mon répertoire ~/.ssh

export SSHPASS=<mypassword>
sshpass -e ssh <myuser>@<server>

Voici le résultat du ps :

5133  5132  0 11:43 pts/0    00:00:00 sshpass -e ssh <myuser1>@server1
8892  8891  0 15:31 pts/2    00:00:00 sshpass -e ssh <myuser2>@server2

Remote desktop, VirtualBox and copy stop during transfer

Rédigé par gorki - - Aucun commentaire

Le problème :

Je réalise des copies de fichiers d'un poste Windows à un autre en Remote Desktop, celle-ci échoue au milieu du transfert de façon aléatoire.

Comme les fichiers copiés étaient gros, j'ai mis ça sur le compte du réseau... ERREUR !!!

Pour compléter le tableau, mon Windows tourne dans une VM (eh oui je suis passé sous Linux, je vous raconterai ça une autre fois).

Solution :

J'ai remarqué qu'en faisant Ctrl+C cela interrompait la copie... 

quelques secondes de méditation plus tard... Tilt !

Le presse-papier de VirtualBox était en mode partagé, donc dès que je copiais quelque chose sous Linux.... la VM était notifiée...

Et comme, Ô joie, la copie distante sous Windows c'est un peu un presse-papier amélioré => annulation de la copie....

 

Donc j'ai désactivé la synchronisation des presse-papiers... tout roule... Tadaaaarrrh.....

SSH au travers de SQUID : connection refused !

Rédigé par gorki - - Aucun commentaire

Le problème :

Pour gérer plusieurs profils réseaux, j'utilise squid avec une configuration par profil. (Le NetworkManager de debian appelle un script lorsqu'une interface devient disponible, ce script met à jour la configuration squid et le redémarre).

Je voulais donc naturellement faire passer mes connexions SSH au travers de ce proxy.

Après configuration du .ss/config ainsi :

Host *
    ServerAliveInterval 240
    ProxyCommand corkscrew localhost 3128 %h %p
    Compression yes

J'obtenais l'erreur : Couldn't establish connection to proxy: Connection refused

J'ai testé les commandes :

corkscrew  localhost 3128 <mon serveur> 22

Après avoir compris que corkscrew utilise nc :

nc -vv localhost 3128

Toujours le même refus.

Solution : quel client ?

En réalité après avoir trouvé que corkscrew utilise nc les réponses sont plus nombreuses sur le net : aide

Le problème vient du fait que j'utilise Debian qui doit avoir une configuration particulière et Squid écoute exclusivement sur IPV6 :

netstat -tulnap | grep 3128

avec tcp6 dans la ligne :

tcp6       0      0 ::1:3128                :::*                    LISTEN      - 

Donc astuce squid3, modifier la configuration pour écouter sur une adresse IPV4, dans /etc/squid/squid3.conf :

http_port 0.0.0.0:3128

Ca devrait être corrigé bienôt : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=584

Right click paste on linux terminal with terminator

Rédigé par gorki - - 2 commentaires

Problem

For once, an english post as I saw many other person interest in this problem.

I just migrate from Windows to Linux, as many others, lot of little things to do to have fully functional desktop... a next post to describe this.

One of the most annoying thing was the "middle click" in terminal... Not used to, I scroll when I want to paste...

No problem, I looked for a terminal with this option.. but no one found on google !!.

Solution (since Terminator 1.0)

Just check the box "PuTTY paste mode" in the preferences, thanks for authors !

Also to display the menu on Cinnamon : shift + right click + left click (or try any of ctrl/shift + right, left, middle click)

Solution (before Terminator 1.0)

I installed Terminator, following many advices, not bad at all, except this annoying menu on right click...

I saw a feature request but author will do it maybe, one day or if someone offers this feature in option with GUI configuration, etc...

Looking for Terminator plugins system, I noticed it was coded in Python, yeah !

Few minutes later, as root :

sudo apt-get install terminator
sudo vi /usr/share/terminator/terminatorlib/terminal.py

Look for the following function :

def on_buttonpress(self, widget, event):
        """Handler for mouse events"""
        # Any button event should grab focus
        widget.grab_focus()

        if event.button == 1:
            # Ctrl+leftclick on a URL should open it
            if event.state & gtk.gdk.CONTROL_MASK == gtk.gdk.CONTROL_MASK:
                url = self.check_for_url(event)
                if url:
                    self.open_url(url, prepare=True)
        elif event.button == 2:
            # middleclick should paste the clipboard
            self.paste_clipboard(True)
            return(True)
        elif event.button == 3:
            # rightclick should display a context menu if Ctrl is not pressed
            if event.state & gtk.gdk.CONTROL_MASK == 0:
                self.popup_menu(widget, event)
                return(True)

        return(False)

I invert button test, and that's all : menu on middle click, paste on right click.

Here is the difference :

def on_buttonpress(self, widget, event):
        ...
        if event.button == 1:
            ...
        elif event.button == 3:
            ...
        elif event.button == 2:
            ...

        return(False)

With Clipman on XFCE to synchronize selection clipboard and X clipboard, it suits my needs for now.

H2 base mémoire et client WEB intégré

Rédigé par gorki - - Aucun commentaire

Le problème :

La base H2 intègre un mode SERVEUR comme Hsqldb ou Derby, mais aussi un mode mixe qui permet au premier client connecté à la base de démarrer un serveur.

Très pratique, en utilisant un client quelconque , on peut se connecter au serveur !

Deux problèmes :

  • quel client ?
  • le mode serveur, OK, mais il ne fonctionne pas avec la base mémoire embarquée !

Solution : quel client ?

Tombé un peu par hasard dessus : ici sur stackoverflow

Il y a une liste ici : http://h2database.com/html/links.html#tools

La console WEB n'est pas intégrée au driver H2, même si dans la librairie H2 il y a la console H2 ; au départ je pensais qu'on aurais pu y accéder en tapant l'URL de la base de données + /console par exemple :)

Pour la console H2 :

  • soit vous avez le raccourci si vous avez installé H2, cf la doc
  • soit via le jar : java org.h2.tools.Console -web -browser
  • sinon, on peut la démarrer tout simplement :
import java.sql.SQLException;
import org.h2.tools.Console;


public class H2Client {

    public static void main(String[] args) {
        try {
            new Console().runTool();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Entrer l'url indiquée dans la configuration ou affichée lors du lancement du serveur pour la base mémoire.

Solution : serveur et base mémoire ?

Idem, dans le même post : ici sur stackoverflow

Sur disque

Ajouter AUTOSERVER=TRUE à la fin de la déclaration de la base de données :

Exemple :

jdbc:h2:~/my-database/db2;AUTO_SERVER=TRUE

En base mémoire

Il faut démarrer le serveur dans la JVM qui utilise la base mémoire embarquée :

Pour la déclaration base mémoire classique :

  • jdbc:h2:mem:test
            Server server = Server.createTcpServer().start();
            System.out.println("URL du serveur H2 : jdbc:h2:" + server.getURL() + "/mem:test");

Notez le "mem:test" à la fin de l'URL, à adapter si vous modifier la votre.

En fin de démarrage de Spring Boot, ça donne :

    @Bean
    public Server initH2Server() {
        try {
            Server server = Server.createTcpServer().start();
            System.out.println("URL: jdbc:h2:" + server.getURL() + "/mem:test");
            return server;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
Fil RSS des articles