ssh ma mantenere la directory di lavoro corrente

Desidero spesso ssh in un altro server, ma conservo la mia directory di lavoro. (Tutti i nostri server hanno gli stessi NFS e pertanto lo stesso path directory esiste solitamente su tutti i server.) È ansible farlo?

4 Solutions collect form web for “ssh ma mantenere la directory di lavoro corrente”

Personalmente non mi piace l' alias ssh . Il minor numero di caratteri che ho trovato per eseguire il lavoro è:

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

Se il server remoto è stato preconfigurato (in sshd_config) con

 AcceptEnv CURRENT_DIR 

E lei include

 cd "$CURRENT_DIR" 

come ultima row nei server remoti '~ .bashrc, è ansible connettersi

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

È una soluzione alternativa, ma functionrà.

Ho trovato una bella soluzione su superuser.com che è molto simile alla soluzione @ adaptr ma senza impostare manualmente la variabile di ambiente.

Creando un alias per ssh è ansible impostare automaticamente quella variabile:

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

Configurare ssh in ~/.ssh/config per submit la variabile SSH_PWD :

Per un singolo host aggiungere questo:

 Host myhost SendEnv SSH_PWD 

Oppure per tutti gli host, aggiungilo alla parte inferiore del file:

 SendEnv SSH_PWD 

E sul server remoto nel tuo .profile o .bashrc :

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

Se non è ansible modificare la configuration dei server remoti e utilizzare gli account di accesso SSH basati su chiavi con un ssh-agent (risparmiando così di wherer inserire la password o la chiave di accesso each volta), un altro approccio hackish:

Nella macchina locale, creare uno script wrapper che è nel tuo path (ad es. /usr/local/bin/cdssh )

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

Sulla macchina remota, aggiungere la parte seguente al tuo file ~/.bashrc o ~/.profile :

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

Ovviamente, questo è un hack selvaggio, ma funziona.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.