Вы сосредоточены на средствах, а не на конце.
Если вы говорите, что не хотите, чтобы пользователи могли использовать ключ SSH с ними, вы действительно хотите, чтобы пользователи не могли входить на конечные машины, не проходя через шлюз сервер. Потому что кто-то заботится, есть ли у них ключ, если он не делает им ничего хорошего?
Таким образом, ключ должен быть авторизирован только для логинов с исходным IP-адресом сервера шлюза (на целевых компьютерах, которым он предоставляет доступ). См. this reference, в частности директиву from
. Естественно, вам также необходимо изменить директиву AuthorizedKeysFile
в глобальном sshd_config
, чтобы включить туда, где пользователи не могут писать на целевых компьютерах (он допускает несколько путей, поэтому вам не нужно останавливать их от добавления собственных ключей, но это похоже, что вы хотите). Затем, пока пользователи сервера шлюза, разделяющие ключи друг с другом, не являются проблемой, то есть каждый, кто может войти в шлюз, должен иметь ключ, - и ваша сеть предотвращает спуфинг источника-IP в пункт назначения машины, ты в порядке.
Возможно, вы также захотите пересмотреть подход, который вы используете; если целью сервера шлюза является только аутентификация (единый вход и централизованное управление доступом), вам лучше использовать метод распределенной аутентификации, такой как Kerberos, вместо неуклюжего входа в систему для входа в систему -Теперь метод.
Вы можете указать пароль шифрования на ключ, чтобы разрешить использовать только авторизованные пользователи. Возможно, вам также захочется рассмотреть хорошие разрешения Unix Unix. :) – MrGomez
SSH-ключ - это всего лишь файл. Если люди имеют право читать и использовать его, они также могут его скопировать. Подумайте о том, что вы просите здесь. То, что вы * можете * и должно делать, это генерировать отдельные ключи для каждого пользователя. Если кто-то войдет в вашу машину, тогда вы, по крайней мере, можете быть уверены, кто это. Кроме того, вы можете отменить отдельные ключи таким образом. –