Обойдите ssh проверку разрешения файла ключей

Вы проверили полномочия файловой системы на хранилище подверсии?

29
задан 10 November 2009 в 13:07
8 ответов

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, также).

18
ответ дан 28 November 2019 в 20:00

Как сумасшедшее обходное решение, Вы могли сделать образ диска 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 доступ работал.

7
ответ дан 28 November 2019 в 20:00
  • 1
    кажется, что нет никакой более простой опции –  instanceof me 5 November 2009 в 19:07
  • 2
    это так неправильно - но очень прохладно :) –  warren 6 November 2009 в 20:44
  • 3
    @warren: Я действительно снабжал его предисловием с ' crazy'.:-D –  Kyle Smith 6 November 2009 в 22:06

Если я вспоминаю правильно, ssh-agent не проверяет на ключевые полномочия. Таким образом, это могло бы работать:

[ -S "$SSH_AUTH_SOCK" ] || eval $(ssh-agent)
ssh-add path/to/id_rsa
1
ответ дан 28 November 2019 в 20:00
  • 1
    К вашему сведению Это не работает. ssh-add действительно проверяет полномочия файла. –  Kyle Smith 5 November 2009 в 18:18

Можно ли изменить опции монтирования (umask, uid и gid) подходить?

0
ответ дан 28 November 2019 в 20:00
  • 1
    AFAIK нет, it' s объем TrueCrypt, моя единственная опция состоит в том, чтобы смонтировать его как только для чтения, и ssh все еще жалуется it' s 0777 –  instanceof me 5 November 2009 в 17:01

Что относительно добавления StrictModes no к Вашему /etc/ssh/sshd_config (и перезагрузка/перезапуск sshd)?

править: ой, эта опция является серверной стороной только:/

2
ответ дан 28 November 2019 в 20:00

У меня сработало добавление ключа из stdin:

cat /path/to/id_rsa | ssh-add -k -
33
ответ дан 28 November 2019 в 20:00

Мой рецепт работы с разрешениями Cygwin/Windows и ключами ssh в cygwin выглядит следующим образом.

откройте первый терминал cygwin64, запустите ssh-agent там

eval $(ssh-agent)

измените разрешения (любого) ключа непосредственно перед добавлением в агент

chmod 400 my_key.pem
ssh-add my_key.pem

откройте будущие терминалы cygwin64 из этого, чтобы убедиться, что они наследуют среду и иметь ssh-agent с ключом(ами)

0
ответ дан 9 February 2021 в 17:56

Я также использую том 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
0
ответ дан 12 April 2021 в 15:44

Теги

Похожие вопросы