Вы проверили полномочия файловой системы на хранилище подверсии?
AFAIK, нет никакого способа обойти разрешение файла ключей, сверяются с ssh или ssh-добавляют (и Вы не можете обмануть его с именованным каналом или таким). Кроме того, Вы на самом деле не хотите обманывать ssh, но только мочь использовать Ваши файлы ключей.
Действительно, объем TrueCrypt, как предполагается, сохраняет Ваши данные частными, настолько монтирующимися объемы, поскольку читаемый миром (поведение по умолчанию TrueCrypt) не действительно оптимально. При использовании отформатированного FAT объема Вы действительно должны ajust опции монтирования как предложенный Dan Carley.
Хотя монтируют, что опции правильно еще не поддерживаются TrueCrypt для OS X (даже при запуске TC с помощью интерфейса командной строки и опций монтирования из страницы справочника - уже попробованный) OS X действительно поддерживает, монтируют значения по умолчанию опции на основе имени тома.
Необходимо знать идентификатор пользователя (обычно 501, если Вы - первый/единственный пользователь компьютера). Можно получить его с "идентификатором-u".
Позвольте', говорят, что Вы имя тома является "ЧАСТНЫМ" (имена томов находятся в прописных буквах), и Ваш uid 501, все, что необходимо сделать, добавляет эта строка к/etc/fstab:
LABEL=PRIVATE none msdos -u=501,-m=700
Необходимо быть корнем для создавания/редактирования этого файла (он не присутствует в установке OSX по умолчанию):
sudo vim /etc/fstab
В следующий раз, когда Вы монтируете объем, он будет иметь идентификатор 501 владельца и разрешение 700.
Это также работает с Картами памяти (которые обычно форматируются в FAT, также).
Как сумасшедшее обходное решение, Вы могли сделать образ диска ext2 объема, содержащего Ваш закрытый ключ, и смонтировать его как циклическое устройство, затем использовать Ваш ssh ключ оттуда.
Сделайте 1 МБ пустым файлом:
dd if=/dev/zero of=diskimg bs=1024 count=1024
Отформатируйте его ext2 (Нажмите Y, когда это говорит, что это не устройство):
mke2fs diskimg
Смонтируйте его где-нибудь (как корень):
mount -t ext2 -o loop diskimg /my/path/to/diskimg
Теперь у Вас есть крошечная ext2 файловая система, на которой можно установить полномочия. Вы могли записать сценарий, чтобы смонтировать его и удостовериться, что те полномочия имеют правильный UID/GID на основе любой системы, Вы идете (так как UIDs может не сочетаться). Это также требует, чтобы sudo/root доступ работал.
Если я вспоминаю правильно, ssh-agent
не проверяет на ключевые полномочия. Таким образом, это могло бы работать:
[ -S "$SSH_AUTH_SOCK" ] || eval $(ssh-agent)
ssh-add path/to/id_rsa
ssh-add
действительно проверяет полномочия файла.
– Kyle Smith
5 November 2009 в 18:18
Можно ли изменить опции монтирования (umask
, uid
и gid
) подходить?
Мой рецепт работы с разрешениями Cygwin/Windows и ключами ssh в cygwin выглядит следующим образом.
откройте первый терминал cygwin64, запустите ssh-agent
там
eval $(ssh-agent)
измените разрешения (любого) ключа непосредственно перед добавлением в агент
chmod 400 my_key.pem
ssh-add my_key.pem
откройте будущие терминалы cygwin64 из этого, чтобы убедиться, что они наследуют среду и иметь ssh-agent
с ключом(ами)
Я также использую том Truecrypt в формате vfat
по тем же причинам совместимости. Но в Linux, используя tcplay
, чтобы смонтировать его из скрипта.
В таком случае вместо редактирования fstab
можно напрямую добавить параметр umask=077
в команду mount
.
Это важная часть сценария, который я использую:
uid=$(id -u)
gid=$(id -g)
# ... losetup and tcplay commands ...
sudo mount -o nodev,nosuid,uid=$uid,gid=$gid,umask=077 /dev/mapper/$mnt_name $mnt_point