# SSH-Forwarding über SUDO behalten

Aus Sicherheitsgründen werden beim Wechsel per Sudo auf einen anderen Benutzer die Umgebungsvariablen (Environment) gelöscht. Allerdings kann es nützlich sein, die Variable SSH\_AUTH\_SOCK zu behalten, damit das SSH-Forwarding weiter funktioniert.

Im SSH-Client muss natürlich das Agentforwarding aktiviert sein (global in /etc/ssh/ssh\_config oder in ~/.ssh/config):

<div id="bkmrk-host-%2A-forwardagent-"><div>```
Host *
  ForwardAgent Yes
```

</div></div>Dann folgende Zeile unter dem „Defaults env\_reset“ eintragen (visudo):

<div id="bkmrk-defaults-env_reset-d"><div>```
Defaults        env_reset
Defaults        env_keep+=SSH_AUTH_SOCK
```

</div></div>Das funktioniert allerdings nur, wenn man von einem normalen User auf root wechselt, da der Auth-Socket nur vom ursprünglichen Benutzer lesbar ist (root darf aber natürlich alles):

<div id="bkmrk-user%40server%3A%2F%24-ssh-a"><div>```
user@server:/$ ssh-add -l
4096 34:5b:42:b6:6f:f7:28:3e:54:e9:76:14:43:a2:04:c5 user@server (RSA)
user@server:~$ sudo su
root@server:/# ssh-add -l
4096 34:5b:42:b6:6f:f7:28:3e:54:e9:76:14:43:a2:04:c5 user@server (RSA)
```

</div></div>Unter Debian Wheezy hat es per „sudo su -“ nicht mehr funktioniert. Allerdings geht es mit „sudo -i“:

<div id="bkmrk-user%40server%3A%7E%24-ssh-a"><div>```
user@server:~$ ssh-add -l
4096 34:5b:42:b6:6f:f7:28:3e:54:e9:76:14:43:a2:04:c5 user@server (RSA)
user@server:~$ sudo -i
root@server:~# ssh-add -l
4096 34:5b:42:b6:6f:f7:28:3e:54:e9:76:14:43:a2:04:c5 user@server (RSA)
```

</div></div>Dies wurde mit Debian/Ubuntu getestet, sollte aber auch in anderen Distributionen funktionieren.