Je pense que vous avez besoin d'autossh. Je l'utilise depuis des années maintenant, et combiné avec screen, il rend toutes mes sessions de terminal complètement portables et transparentes. Je ferme simplement lappy, je me déplace vers un nouvel emplacement, j'ouvre lappy et tous mes écrans et écrans imbriqués se connectent automatiquement. Je n'y pense même plus.
http://www.linux.com/archive/feature/134133
c'est les bases... J'ai ruby'd up un lil script pour automatiser le processus dans mon .screenrc pour un hôte donné. (il fait aussi mon ssh forwarding, donc dans tous ces endroits différents je peux tunneliser ma connexion à travers mes serveurs)
dans la distro autossh il devrait y avoir un programme appelé rscreen ( et il y en a un !)
#!/bin/sh
#
# sample script to use autossh to open up a remote screen
# session, or reconnect to an existing one.
#
# $Id: rscreen,v 1.4 2002/05/07 17:54:13 harding Exp $
#
if [ "X$1" = "X" ]; then
echo "usage: `basename $0` <host>"
exit 1
fi
if [ "X$SSH_AUTH_SOCK" = "X" ]; then
eval `ssh-agent -s`
ssh-add $HOME/.ssh/id_rsa
fi
#AUTOSSH_POLL=600
#AUTOSSH_PORT=20000
#AUTOSSH_GATETIME=30
#AUTOSSH_LOGFILE=$HOST.log
#AUTOSSH_DEBUG=yes
#AUTOSSH_PATH=/usr/local/bin/ssh
export AUTOSSH_POLL AUTOSSH_LOGFILE AUTOSSH_DEBUG AUTOSSH_PATH AUTOSSH_GATETIME
autossh -M 20004 -t $1 "screen -e^Zz -D -R"
Cela devrait aider à résoudre les problèmes de ssh/écran
Enfin, pour maintenir mon agent ssh en fonctionnement, j'utilise le trousseau de clés, car je suis un peu une tête de Shell... Je pense que OSX a quelque chose de disponible pour garder votre agent autour ...