Our company has a server that is a locked down version of Linux (custom shell for users, no direct access). I am currently pushing updates to the user, but it would be more ideal for the users to do a pull.
Each device has a serial number that would probably be used as part of the login to an update server.
I would like to have multiple channels/branches (whatever they should be called), such as MAIN and DEV.
What protocol would be best for this situation? FTP is easier to limit directory access, in case someone was to get the full login information. SCP would be better, as I would like to secure the transmission, but I would prefer read-only and limited to a directory. Can this be done with SCP?
What should the username/password be? I guess for SCP, the serial number could be the username, and instead of a password, generate a key for the user.
Don't use a username/password scheme.
Use SSH keys. This gives you the following advantages:
With SCP/SFTP each user is able to download exactly what they can see. So if the user account is only given read permissions in their homedir, which has a symlink to whichever branch they should be viewing, that's what they'll see and what they'll be able to get.
Test by logging in as one of the users and trying to
less
the files you want to be secure. If your permissions are properly set you won't be able to.The username/password could certainly be what you propose. Remember to have some way to update the key on the device if compromised, though.