J'utilise git sur linux, lorsque je pousse vers gitlab, parfois il est bloqué sur:
debug1: Connexion au port 22 de gitlab.com [52.167.219.168].
ou
debug1: client_input_channel_req: canal 0 rtype [email protected] réponse 1
debug3: envoyer un paquet: type 100
Il semble que redémarrer Linux puisse le résoudre, mais aucun organisme n'aime redémarrer les machines. Donc, j'essaie de tuer le processus ssh-agent, puis de le redémarrer.
Mais le processus est toujours defunct
après kill, et alors je ne peux pas utiliser git via ssh du tout, donc y a-t-il un moyen de redémarrer l'agent ssh, ou de résoudre le problème décrit ci-dessus sans redémarrer la machine?
@ Mise à jour
Les clés ssh que j'utilise incluent une phrase clé que j'entrerais lors de la première utilisation d'une clé ssh.
Le problème se produit généralement après que je ramène le bureau Linux en veille, donc le réseau est reconnecté, vous ne savez pas si cela importe?
Encore une fois, est-ce que quelqu'un sait comment tuer ou redémarrer un ssh-agent
agent, sans le faire devenir defunct
?
Vous pouvez essayer ce script bash pour terminer l'agent SSH:
#!/bin/bash
## in .bash_profile
SSHAGENT=`which ssh-agent`
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi
## in .logout
if [ ${SSH_AGENT_PID+1} == 1 ]; then
ssh-add -D
ssh-agent -k > /dev/null 2>&1
unset SSH_AGENT_PID
unset SSH_AUTH_SOCK
fi
Il affiche defunct
probablement parce que son processus parent le surveille toujours, il n'est donc pas supprimé de la table de processus. Ce n'est pas grave, le processus est tué. Lancez simplement un nouvel agent ssh:
eval $(ssh-agent)
ssh-add