Skip to content

IA helper suggestions #3

Description

@daodevinc

Hey,

Thx for this script !

Since i use sshr (my alias name for that, because replace ssh alias cause issue for git and other tools in local terminal), i have big slow connexion (ssh my_alias take 1 second, and sshr my_alias is approx 5/10sec (with fiber-link))

Have "debug" with my new best friend, but don't know what is your security return with this information :

1. Pourquoi sshr docker est très lent

Le ralentissement survient après la ligne Sending command: echo 'H4s…', c’est-à-dire lors de l’exécution de la longue commande envoyée via SSH.

Cause probable :
La commande envoyée par sshr() contient une énorme chaîne base64 gzip-é, injectée dans un echo '...'.
Lorsque tes fichiers sont un peu lourds (même quelques centaines de ko après base64), OpenSSH :

doit envoyer énormément de données au moment de la requête exec,

met du temps à accepter le PTY (car la commande est volumineuse),

doit s’assurer que le payload n’est pas interprété par le shell.

Cela explique l’attente entre :
exec request accepted on channel 0
et la première activité du shell.

Le comportement “ssh simple = rapide” est normal, car rien n’est envoyé dans le canal exec.

Solution simple : ne pas injecter les fichiers dans la commande.

Deux options efficaces :

Option A — Copier les fichiers via scp avant de lancer la session
scp ~/.sshtools/.bashrc_remote ~/.sshtools/.vimrc_remote ~/.sshtools/.webshare.py docker:/tmp/
ssh docker 'bash --rcfile /tmp/.bashrc_remote'


Tu peux automatiser ça dans sshr.

Option B — Passer les fichiers via ssh mais en streaming, sans base64 dans un echo

Beaucoup plus rapide :

sshr() {
    ssh "$1" 'cat > /tmp/.bashrc_remote' < ~/.sshtools/.bashrc_remote
    ssh "$1" 'cat > /tmp/.vimrc_remote' < ~/.sshtools/.vimrc_remote
    ssh "$1" 'cat > /tmp/webshare.py' < ~/.sshtools/.webshare.py
    ssh -t "$1" 'bash --rcfile /tmp/.bashrc_remote'
}


Avantages :

aucun base64 gigantesque,

aucun echo lent,

transfert direct via SSH (beaucoup plus rapide).

Have fun !

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions