How to check if username is valid on a ssh server

Delyle picture Delyle · Dec 23, 2016 · Viewed 8.3k times · Source

How can I check if a username exists at a ssh server address using command line tools? For example, I would love to type,

isvaliduser [username] [ssh_server]
result: True

where isvaliduser is some magical function that tests whether a user with name username exists at ssh_server. But is this feasible?

My specific application: The remote server I need to access has a dynamic IP (I can't use a Dynamic DNS service). I can come up with a list of server addresses that contains my target address, but I need a way to figure out which one is mine. I thought one way of doing this would be to test if any of the addresses have the user myusername. But if you have another suggestion for solving my particular problem, I would be happy to hear it.

Answer

Jakuje picture Jakuje · Dec 23, 2016

You have to connect to that server and check if the user is in the passwd for example:

ssh your_account_at_serve@[ssh_server] grep [username] /etc/passwd

If you would be able to enumerate users without authentication, it is considered as a information disclosure and security threat.