разрешить доступ через ssh-ключ без использования ~ / ssh / authorized_keys

Я хочу включить доступ к домашним dirs через ssh / scp с помощью ключа. Обычно я помещал ключ pub в ~ / ssh / авторизованные ключи. Но я хочу

  • отключить возможность добавления или удаления ssh-ключей (отключить ~ / ssh / authorized_keys)
  • Пользователь не должен иметь возможность rm -f pub_key, изменять pub_key везде, где он сидит в системе
  • создайте каталог, в котором ключи паба для разных учетных записей сохраняются нечитаемыми для «нормального» пользователя, например, например, /etc/sudoers.d/ доступен только для чтения root1

Это возможно? Как я могу это сделать?

Есть две вещи, которые вы хотите достичь:

  • Запретить аутентификацию с помощью ~/.ssh/authorized_keys

    Как предлагалось установить AuthorizedKeysFile в другое место. Если есть обсуждаемое требование, оно не будет оцениваться (иначе больше нечего решать).

  • Установить AuthorizedKeysCommand

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

Например:

 AuthorizedKeysFile /etc/ssh/%u/authorized_keys AuthorizedKeysCommand /usr/sbin/get_user_keys AuthorizedKeysCommandUser dedicated_user 

И ваш скрипт /usr/sbin/get_user_keys может выглядеть так:

 #!/bin/sh cat /etc/ssh/%u/authorized_keys 

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