Вопрос: Проверка доступа к файлу с байпасом ssh


У меня есть зашифрованный том FAT (для совместимости), содержащий файл закрытого ключа и другие конфиденциальные данные.

Я хочу подключиться к моему серверу через SSH с помощью моего личного ключа, но, конечно, поскольку FAT не поддерживает разрешение файла, он игнорирует мой ключ, говоря, что его разрешения слишком открыты.

Поэтому в настоящее время я копирую его где-то еще на своем жестком диске с разрешениями 0600, используя его, а затем безопасно стирая его, но это боль.

Есть ли способ обойти проверку прав на эту самую командную строку ssh / scp?

редактировать: Точность: это был том TrueCrypt на OS X.

По решению: Принятый ниже ответ решает мою проблему (используя файл ключа SSH, расположенный на томе TrueCrypt с Mac OS X), но это обходное решение. Похоже, что нет возможности «обходить проверку ключа ключа обхода».


20
2017-11-05 14:47


Источник




Ответы:


AFAIK, нет способа обойти проверку разрешения keyfile с помощью ssh или ssh-add (и вы не можете обмануть его с помощью именованного канала или такого). Кроме того, вы фактически не хотите обманывать ssh, а просто можете использовать ваши файлы ключей.

На самом деле, TrueCrypt-том должен хранить ваши личные данные, поэтому установка томов в соответствии с мировым уровнем чтения (поведение по умолчанию TrueCrypt) на самом деле не оптимальна. Если вы используете громкость в формате FAT, вам действительно нужно настроить параметры монтирования, как предложил Дэн Карли.

Хотя параметры монтирования еще не были правильно поддерживаются TrueCrypt для OS X (даже если вы запустили TC с помощью интерфейса командной строки и параметры монтирования с man-страницы, которые уже были пробованы), OS X поддерживает установки параметров по умолчанию для монтирования на основе имени тома ,

Вам нужно знать свой идентификатор пользователя (обычно 501, если вы первый или единственный пользователь компьютера). Вы можете получить его с помощью «id -u».

Скажем, вы, том, имя тома «PRIVATE» (имена томов находятся в столицах), а ваш uid равен 501, все, что вам нужно сделать, это добавить эту строку в / etc / fstab:

LABEL=PRIVATE none msdos -u=501,-m=700

Для создания / редактирования этого файла вам необходимо быть root (его нет в установке OSX по умолчанию):

sudo vim /etc/fstab

В следующий раз, когда вы установите том, он получит разрешение 700 и идентификатор владельца 501.

Это также работает с USB-накопителями (которые также форматируются в FAT).


14
2017-11-06 17:40



отлично работает - instanceof me
Я не смог получить FAT-форматированный том, чтобы получить правильные разрешения с помощью этого метода. Однако, выбрав «Mac OS Extended» и выбрав параметр для установки на другие операционные системы, я могу установить разрешения с помощью chmod. - emptyset
Это сработало чудесно. Когда я монтирую защищенный том, я монтирую его в определенную точку в своем домашнем каталоге. Я обнаружил, что мне пришлось заменить значение «none» на явное имя точки монтирования. - Alec the Geek


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

cat /path/to/id_rsa | ssh-add -k -

13
2017-11-14 10:25



почему у этого нет ни одной позиции? он работает из коробки без установки, и вы все равно используете ssh-agent, не так ли? - P.Scheit
работает как шарм - должен ли принятый ответ - hdave


Как сумасшедший обходной путь вы можете создать образ диска тома ext2, содержащий ваш закрытый ключ, и установить его как устройство цикла, а затем использовать свой ssh-ключ.

Сделайте 1MB пустой файл:

dd if=/dev/zero of=diskimg bs=1024 count=1024

Отформатируйте его ext2 (нажмите Y, когда он говорит, что это не устройство):

mke2fs diskimg

Смонтируйте его где-нибудь (как root):

mount -t ext2 -o loop diskimg /my/path/to/diskimg

Теперь у вас есть крошечная файловая система ext2, на которую вы можете установить разрешения. Вы можете написать сценарий для его монтирования и убедиться, что эти разрешения имеют нужный UID / GID на основе любой системы, в которой вы находитесь (поскольку UID могут не совпадать). Для этого также требуется доступ к sudo / root.


7
2017-11-05 15:14



похоже, нет более простого варианта - instanceof me
это так неправильно - но очень круто :) - warren
@warren: Я предисловие это с «сумасшедшим». :-D - Kyle Smith


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

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


2
2017-11-10 12:21





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

[-S "$ SSH_AUTH_SOCK"] || eval $ (ssh-agent)
ssh-add path / to / id_rsa

1
2017-11-05 15:32



FYI, Это не работает. ssh-add проверяет права доступа к файлам. - Kyle Smith


Можете ли вы изменить параметры монтирования (umask, uid а также gid) в соответствии с?


0
2017-11-05 14:52



AFAIK Нет, это том TrueCrypt, мой единственный вариант - установить его как только для чтения, а ssh по-прежнему жалуется, что это 0777 - instanceof me