у меня есть .ssh/config
с участием -rw-rw-r--
. Я знаю, что ты должен chmod 600
. Это не моя проблема.
Что меня сбивает с толку, так это то, что если я помещу тот же файл конфигурации в другое место, скажем, ~/tmp/ssh_config
- а затем запустить ssh -F ~/tmp/ssh_config
, разрешения не проверяются! Это происходит в OSX.
Почему это? Почему SSH заботится о разрешениях в одном месте, а не о другом?
Если бы я мог предположить это, я бы предположил, что, когда клиент ssh использует конфигурацию из местоположений по умолчанию, пользователь, инициирующий соединение, на самом деле не знает, что используется файл конфигурации. Существует неявное предположение, что файл конфигурации не был изменен. Если разрешения слишком разрешающие, то это может означать, что пользователь доверяет конфигурации по умолчанию, которая безопасна, в то время как это не так.
Когда вы ссылаетесь на файл конфигурации с -F
вариант, вы явно заявляете, что хотите этот файл конфигурации. По сути, вы говорите клиенту, что знаете, чего хотите, и что это файл конфигурации. Вы должны ответственно знать, что делаете. Существуют допустимые варианты использования, когда группа людей может захотеть использовать общий файл конфигурации для набора общих серверов.