В Linux имена пользователей сопоставляются с идентификатором пользователя, который можно увидеть с помощью команды id -u someusername
.
Во многих случаях по умолчанию SSH требует, чтобы ваш ключ SSH принадлежал пользователю, работающему с SSH, и был скрыт для других 600
Поэтому я настоятельно рекомендую вам копировать ключ, а не монтировать его, если только у пользователя контейнера нет идентичного идентификатора пользователя.
Если вы используете контейнер linux, вы можете запустить команду внутри контейнера, чтобы получить точный идентификатор пользователя, а затем сократить ваши файлы с идентификатором пользователя вместо имени пользователя.
kubectl exec -it mypod bash
или sh
, если bash не работает
$ id -u someuser
OR
kubectl exec -it mypod id -u
если в вашем контейнере есть один пользователь, который запустил основной процесс
ТО
Скопируйте ваш id-файл, чтобы вы могли создать его, не мешая вашей способности работать с ssh.
mkdir -p /data/secrets/myapp
cp /home/user/.ssh/id_rsa /data/secrets/myapp/id_rsa
chown $MYAPPUSERID:$MYAPPUSERID /data/secrets/myapp/id_rsa
chmod 600 /data/secrets/myapp/id_rsa
Поскольку хост-операционная система, возможно, уже сопоставила этот идентификатор пользователя, может показаться , что ваши файлы принадлежат другому произвольному пользователю, но в конечном итоге важен идентификатор пользователя владельца / группы.