Skip to content

IA helper suggestions #3

@Sigri44

Description

@Sigri44

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 !

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