ssh mais conservez le directory de travail actuel

Je souhaite souvent ssh dans un server différent, mais conserve mon directory de travail. (Tous nos servers ont le même NFS et, par conséquent, le même path de directory existe généralement sur tous les servers.) Est-il possible de le faire?

4 Solutions collect form web for “ssh mais conservez le directory de travail actuel”

Personnellement, je n'aime pas alias ssh . Le plus petit nombre de personnages que j'ai trouvé pour faire le travail est:

 ssh user@hostname -t "cd $PWD;bash" 

Si le server distant a été préconfiguré (dans sshd_config) avec

 AcceptEnv CURRENT_DIR 

Et vous incluez

 cd "$CURRENT_DIR" 

comme dernière ligne dans les servers distants ~ / .bashrc, vous pouvez vous connecter avec

 CURRENT_DIR="$PWD" ssh user@host -o SendEnv=CURRENT_DIR 

C'est une solution de contournement, mais ça va … travailler.

J'ai trouvé une bonne solution sur superuser.com qui ressemble beaucoup à la solution d'adaptation d'Adaptr, mais sans configurer manuellement la variable d'environnement.

En créant un alias pour ssh vous pouvez définir cette variable automatiquement:

 alias ssh='env SSH_PWD="$PWD" /bin/ssh' 

Configurez ssh dans ~/.ssh/config pour envoyer la variable SSH_PWD :

Pour un seul hôte, ajoutez ceci:

 Host myhost SendEnv SSH_PWD 

Ou pour tous les hôtes, ajoutez ceci au bas du file:

 SendEnv SSH_PWD 

Et sur le server distant dans votre .profile ou .bashrc :

 if [ -n "$SSH_PWD" ] && [ -d "$SSH_PWD" ]; then cd "$SSH_PWD" unset SSH_PWD fi 

Si vous ne pouvez pas modifier la configuration des servers distants et utiliser les connections SSH basées sur les keys avec un ssh-agent (vous épargnant ainsi d'entrer votre mot de passe ou mot de passe key à chaque fois), une autre approche hacking:

Sur votre machine locale, créez un script wrapper qui se trouve sur votre path (p. Ex. /usr/local/bin/cdssh )

 #!/bin/bash TMPFILE="/tmp/$(basename $0).$$.tmp" echo "cd `pwd`" > $TMPFILE scp -q $TMPFILE $1:~/.cwdfile ssh $@ rm $TMPFILE 

Sur la machine distante, ajoutez la partie suivante à votre ~/.bashrc ou ~/.profile :

 if [ -f ~/.cwdfile ]; then cd ~/.cwdfile rm ~/.cwdfile fi 

Évidemment, c'est un hack sauvage, mais ça marche.

  • La meilleure façon de visualiser les sites qui utilisent les statistics? (j'ai un server dédié)
  • Déplace le file le plus ancien via cron
  • UNIX-Security Advise
  • Dépannage de httpd dans Linux
  • Combien de bits dans mon Ubuntu?
  • Quel script ou programme est-il nécessaire pour garder une date de système unix correcte?
  • Les hôtes ancrés avec Scp?
  • l'autorisation de file n'est pas correcte lors de la copy de files avec SCP
  • Comment puis-je migrer les lists de messagerie d'un domaine vers l'autre?
  • Exemples de files de diffusion / etc / *
  • Exemples échoués: libmysqlclient.so.16 est nécessaire
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.