2014-11-13 4 views
1

Скажите, у меня есть учетная запись на моем удаленном сервере storage, где использование может загружать и загружать данные. Я добавляю ключ SSH разрешенных пользователей вручную к /home/storage/.ssh/authorized_keys. Теперь у меня есть два пользователя, которые используют разные общедоступные SSH-ключи, Уотсон и Шерлок.Ограничить доступ на основе SSH-ключа

Как я могу убедиться, что Watson не может загрузить/загрузить из частной галереи Sherlocks? Можно ли определить разрешение файла/папки на основе ключа SSH, который использовался для аутентификации?

Я думал о ограниченной программе оболочки, которая установлена ​​как оболочка пользователя storage. Но как эта ограниченная оболочка может узнать, какой ключ SSH был использован?

+1

Если вы не хотите, чтобы они делились разрешениями, не делите учетную запись пользователя. Если вы * хотите * делиться учетной записью пользователя, вы можете посмотреть, что такое 'gitolite' для этого сценария. –

ответ

3

Вы можете попробовать использовать command параметр в файле /home/storage/.ssh/authorized_keys с ограниченной оболочкой, например:

command="cd /home/storage/watson && rbash" ssh-rsa AAAAB3...2Z <- watson's public key 
command="cd /home/storage/sherlock && rbash" ssh-rsa AAAAB4...R5 <- sherlock's public key 

Теперь пользователь получит ограниченную оболочку в подкаталоге в зависимости от закрытого ключа используются.