Sign up ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I want to allow access to each user on a server through a different port. For example; user1 can only be accessed by ssh through port 2201, user 2 can only be accessed through port 2202. I have already allowed access through ports 2201 and 2202 by editing "/etc/ssh/sshd_config" and adding two lines:

Port 2201
Port 2202

Both users can now access ssh through both ports (and 22).

  • How would I restrict them to only their own ports?

(Also), the users [except root] don't have any automatically created "~/.ssh/" directory so I made one and tried adding a config file and an authorized_keys file - these don't seem to make any difference.

OS is debian squeeze and thanks in advance.

share|improve this question
Why would you? The only solution I can think of is running multiple sshd instances... – Bart De Vos Mar 14 '11 at 18:44
Agreed - what's the "why" behind your question. I can't help but assume there's a better way to solve your root problem. – EEAA Mar 14 '11 at 18:58
Tell us why. It doesn't make any sense from a security or systems management perspective. – Alex Holst Mar 14 '11 at 21:03
Add a .ssh directory to /etc/skel, and then all users will get that folder automatically when their home dir is created. – EEAA Mar 15 '11 at 1:17
Sorry for not answering in a while, I just got out of school. Why? - I want to give each person who I allow to share my server a quota so that i dont go over my traffic limit and aquire surcharges. I want to include sftp/ scp /ssh along with other things into this quota (which I am trying to set up w/ iptables btw). Obviously I can't just put a quota on port 22 as this would be unfair if someone downloads/uploads a huge amount. Is there a better way to do this?. Thanks for all the downvotes though. – Nick Mar 15 '11 at 18:08

1 Answer 1

up vote 2 down vote accepted

You'll have to create a separate sshd_config for each user/port combo containing (along with the usual configuration options) the ListenAddress and AllowUsers keywords.


ListenAddress 0:2201
AllowUsers user1


ListenAddress 0:2202
AllowUsers user2


You'll need to run sshd once for each user with the -f switch to specify the individual configuration files.

share|improve this answer
Alternatively, sshd -oPort=2201 -oAllowUsers=user1. (If you use ListenAddress 0:2201, you will be stuck with IPv4, which is ungood.) – grawity Mar 15 '11 at 6:06
I guess from the other comments that this probably wasn't the best solution for my problem, but until I learn systems and security management this works for me. So - thanks to both of you! – Nick Mar 15 '11 at 19:26

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.