Server A has a public ip and a private ip, each on another vlan and thus on another virtual interface.
How can I enable scp only on the public ip and ssh only on the private IP, for all users.
Hannes De Bondt
SCP is ssh. There is no "server" as in ftp, that listens, aside from the sshd daemon. If you enable ssh connection, you also enable scp (which is not a distinct protocl) and vice versa..
Actually scp transfers files over SSH protocol, so you need SSH access to the machine to be able to use scp.
If you are concerned about security a firewall is what you need - blocking access from unwanted visitors on the public interface.
Alternatively you can configure sshd to listen on the private IP only and setup an OpenVPN server to gain access to the server from a remote location.