At first, I'd like to note that I am aware that there are a lot of other questions regarding SSH agent forwarding. The people there wanted to know how to make agent forwarding work or how to configure it securely. But I have the opposite problem: It seems that I can't reliably disable it. So here we go:

I am running a Debian bullseye system, up to date at the time of writing, basically vanilla. On that system, a SSH daemon is running, with the following configuration in /etc/ssh/sshd_config:

AcceptEnv LANG LC_*
AllowAgentForwarding no
AllowTcpForwarding no
AllowStreamLocalForwarding no
ChallengeResponseAuthentication no
Ciphers [email protected],[email protected]
Compression no
DebianBanner no
HostKeyAlgorithms rsa-sha2-512,ssh-ed25519
KbdInteractiveAuthentication no
KexAlgorithms curve25519-sha256,[email protected],diffie-hellman-group-exchange-sha256
ListenAddress aaa.bbb.ccc.ddd
LoginGraceTime 20
MACs [email protected],[email protected]
PasswordAuthentication no
PermitUserRC no
Protocol 2
# The first of the following version is the right one.
# However, for brain-dead WinSCP, we need the second version.
#PubkeyAcceptedKeyTypes rsa-sha2-512,rsa-sha2-256,ssh-ed25519
PubkeyAcceptedKeyTypes rsa-sha2-512,rsa-sha2-256,ssh-ed25519,ssh-rsa
RekeyLimit 100M 20m
Subsystem sftp /usr/lib/openssh/sftp-server

Match user copyremote
  ChrootDirectory /backup
  ForceCommand /usr/lib/openssh/sftp-server

This is the complete configuration file; nothing has been removed or obfuscated except the IP address it listens on. Furthermore, there are no other places that contain additional configuration snippets for the SSH daemon.

Basically, that configuration tries to turn off every feature I don't need, for example the agent forwarding feature (note: In that configuration file, I didn't add the lines for most of the features that are off by default (according to the manual)). We also see that the authentication is based on public keys exclusively.

The other day I was investigating a problem with the user copyremote and the sftp subsystem and therefore gave -v as parameter to sftp on a client machine. That lead to the following output (showing only relevant portions):

root@morn ~/scripts # sftp -v -i ~/.ssh/id_rsa_backup_user [email protected]:/backup/achilles.bsdtar.gz .
OpenSSH_8.4p1 Debian-5+deb11u1, OpenSSL 1.1.1n  15 Mar 2022
debug1: Remote: /home/usr/copyremote/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug1: Remote: /home/usr/copyremote/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding

Now that's frightening. I thought I had turned off agent forwarding globally in the system-wide configuration file on the server. However, as I understand that output, it offers it.

Could anybody please explain how I can turn off agent forwarding (and further features that I don't want the server to offer) globally?

Those features can be explicitly disabled in the authorized_keys files, but that would be very error prone and a lot of work if there are multiple users and each of them accepts multiple public keys, so I'd really prefer being able to turn it off at one place.

This is the authorized_keys file of the user copyremote on the server:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDs6ku+LXaUBs....JFchhaoQ== me@client

There is nothing special in there. Notably, agent forwarding is not allowed explicitly. Why does it not apply the setting from the system-wide configuration then?

P.S. I am aware that SSH / SFTP chroot does not provide the security we would expect from it. I have implemented further measures on the server that mitigate that problem, so it doesn't need to be discussed here :-)


1 Answer 1


It only says that the agent forwarding would be possible with the key (default), had the agent forwarding been enabled globally (what it is not).

The log entry shows only result of parsing the authorized_keys file. It basically says that no-agent-forwarding flag was NOT found at the respective entry. It in no way reflects the AllowAgentForwarding no directive.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .