У меня есть пользователь, который используется только для прокси, поэтому никто не может войти в систему.
#passwd file entry
proxyuser:x:996:99::/home/proxyuser:/bin/false
но я бы хотел включить ssh-copy-id для этого пользователя
Как я могу это сделать? Нужна кастомная оболочка что ли?
В большинстве систем ssh-copy-id
представляет собой простой сценарий оболочки, который создает список локальных идентификаторов в системе, в которой запущено клиентское программное обеспечение ssh, подключается к удаленной системе с помощью ssh, просит пользователя пройти аутентификацию и копирует идентификаторы в authorized_keys
файлы в удаленной системе.
Последняя часть скрипта выглядит так, по крайней мере, в openssh-6.4p1
в моей системе Fedora 20:
printf '%s\n' "$NEW_IDS" | ssh "$@" "
umask 077 ;
mkdir -p .ssh && cat >> .ssh/authorized_keys || exit 1 ;
if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi" \
|| exit 1
Таким образом, для ssh-copy-id
для работы вам понадобится ограниченная удаленная оболочка, которая позволяет вам указывать не только команды, которые пользователь может запускать, но также файлы, к которым он / она может получить доступ (с помощью перенаправления вывода). Я не знаю какой-либо оболочки с ограниченным доступом, допускающей такие настройки.
Обычно я рекомендую указывать команду в ~/.ssh/authorized_keys
, но это не имеет большого смысла, если намерение состоит в том, чтобы поддержать ssh-copy-id
.
Пользовательская оболочка может работать, но может оказаться излишней. Еще одна альтернатива, которую стоит рассмотреть, - это использование ~/.ssh/rc
файл, который будет запускаться перед оболочкой пользователя.
Для любого подхода вам необходимо убедиться, что вы не открываете нежелательный доступ. Вам необходимо проверить три случая:
-N
который вообще не запускает никаких команд, но разрешает переадресацию портов.Если есть какие-либо из этих трех, вы не хотите разрешать, вы должны убедиться, что ваше предполагаемое решение не разрешает это с помощью пароля или более поздней версии с использованием ключа, установленного ssh-copy-id
.