У меня есть свой .ssh каталог в зашифрованном редком изображении. т.е. ~/.ssh является символьной ссылкой на/Volumes/VolumeName/.ssh
Проблема состоит в том, что, когда я пробую к ssh в ту машину с помощью открытого ключа, я вижу следующее сообщение об ошибке в /var/log/secure.log:
Authentication refused: bad ownership or modes for directory /Volumes
Какой-либо способ решить это в очевидном способе?
Обновление:
Полномочия на ~/.ssh и authorized_keys являются правильными:
> ls -ld ~
drwxr-xr-x+ 77 vitaly staff 2618 Mar 16 08:22 /Users/vitaly/
> ls -l ~/.ssh
lrwxr-xr-x 1 vitaly staff 22 Mar 15 23:48 /Users/vitaly/.ssh@ -> /Volumes/Astrails/.ssh
> ls -ld /Volumes/Astrails/.ssh
drwx------ 3 vitaly staff 646 Mar 15 23:46 /Volumes/Astrails/.ssh/
> ls -ld /Volumes/Astrails/
drwx--x--x@ 18 vitaly staff 1360 Jan 12 22:05 /Volumes/Astrails//
> ls -ld /Volumes/
drwxrwxrwt@ 5 root admin 170 Mar 15 20:38 /Volumes//
сообщение об ошибке sats проблема с Объемами/, но я не вижу проблемы.
Да это - o+w, но это также +t, который должен быть в порядке, но по-видимому не является.
Проблема, я не могу изменить полномочия Объемов / (или скорее не был должен), но я действительно хочу, чтобы вход в систему с открытым ключом работал.
Сначала я думал о монтировании изображения на другом месте затем / Объемы, но это - automaunted на входе в систему стандартным монтированием OSX. Я спросил об этом здесь: То, как изменить каталог монтирования образа диска по умолчанию на osx единственный ответ, который я получил, "Вы не можете" ;)
Я мог взломать свой путь вокруг путем записи некоторого сценария оболочки, который будет, вручную монтируя объем в нестандартном местоположении, но это был бы грубый взлом, я все еще ищу более чистый способ сделать то, в чем я нуждаюсь.
$ man sshd_config
; ответ здесь
StrictModes
Specifies whether sshd(8) should check file modes and
ownership of the user's files and home directory before
accepting login. This is normally desirable because
novices sometimes accidentally leave their directory or
files world-writable. The default is ``yes''.
$ sudo emacs /etc/sshd_config
; выключите проверку режима
- #StrictModes yes
+ StrictModes no
$ /usr/sbin/sshd
; перезапуск sshd
Просто не забывайте сохранять свои .ssh полномочия файла корректными.
Теперь, я не уверен, как сделать это конкретно на OS/X, но поскольку OS/X является системой BSD, это должно быть подобно FreeBSD.
Вот то, как Вы делаете это на FreeBSD.
sshd
не будет следовать за символьными ссылками для его файлов ключей. Это сделано нарочно для безопасности. Так, необходимо измениться где sshd
попытка состоит в том, чтобы искать файлы ключей.
Необходимо будет изменить /etc/ssh/sshd_config
файл и ищет AuthorizedKeysFile
запись. Это принимает значение по умолчанию к .ssh/authorized_keys
(который является относительно корневого каталога пользователя).
Измените запись, чтобы быть всем (абсолютным) путем фактического местоположения authorized_keys файла. Существует определенное количество маркерной доступной замены - самое полезное %u
который заменяется именем пользователя пользователя, входящего в систему.
Например:
AuthorizedKeysFile /Volumes/EncryptedData/%u/.ssh/authorized_keys
дал бы Вам /Volumes/EncryptedData/vitaly/.ssh/authorized_keys
Если это только когда-либо будет одним пользователем, использующим систему затем, это довольно безопасно опустить %u расширение и просто использовать единственный путь - но предупреждено: если Вы добавите больше пользователей, то они будут все использовать тот же файл ключей, таким образом, это будет хорошая идея использовать расширение имени пользователя, с самого начала просто упаковывают (Вы не хотите добавлять пользователя 6 месяцев по линии и забывать выполнение этого),
Так, если у Вас есть/etc/ssh/sshd_config файл в Вашей системе, затем этот метод должен работать.