Пользователи, вошедшие в систему на моем Linux-сервере, должны иметь возможность подключаться по ssh к определенной удаленной машине с учетной записью по умолчанию. Аутентификация на удаленном компьютере использует открытый ключ, поэтому на сервере доступен соответствующий закрытый ключ.
Я не хочу, чтобы пользователи сервера могли читать закрытый ключ. По сути, тот факт, что у них есть доступ к серверу, дает им право ssh, и удаление их с сервера также должно запретить подключение к удаленной машине.
Как я могу разрешить пользователям открывать ssh-соединение, не предоставляя им доступ для чтения к закрытому ключу?
Мои мысли пока таковы: очевидно, что исполняемый файл ssh должен уметь читать закрытый ключ, поэтому он должен запускаться под другим пользователем на сервере, который имеет такие права. Как только соединение ssh установлено, я могу «переслать» его пользователю, чтобы он мог вводить команды и взаимодействовать с удаленным компьютером.
- Это хороший подход?
- Как мне реализовать форвард?
- Как пользователь может инициировать соединение (то есть выполнение ssh пользователем, имеющим права на чтение ключа)?
- Есть ли лазейка в безопасности? - если пользователи могут выполнять ssh как другой пользователь, могут ли они тогда делать все, что мог другой пользователь (включая чтение секретного ключа)?
~/.ssh/authorized_keys
файл?