Права доступа к файлам применяются на хосте. Файл по-прежнему необходимо сделать видимым извне; для этого вы используете SSH(через scp
), и именно SSH запрашивает ваш пароль. Это происходит до того, как что-либо связано с целевым файлом; сервер SSH аутентифицирует подключающегося пользователя, и только после того, как это завершено (успешно ), он scp
задействован на целевом хосте и получен доступ к целевому файлу.
Если вам нужен доступ по SSH без пароля, вы можете настроить для этого ключи.
Между прочим, поскольку вы входите в систему как user
на host
, соответствующие разрешения для alpha.txt
относятся только к user
. Если user
является владельцем alpha.txt
, alpha.txt
должен быть доступен для чтения только его владельцу.
Добавьте ForceCommand
в конфигурацию sshd _(, которую вы можете включить в блок сопоставления, чтобы он затрагивал только этого пользователя ), который запускает клиент (в вашем случаеpsql
).
Кроме того, вы можете установить ограничение ForceCommand для файла authorized_keys
, добавив перед ним command="..."
. Вероятно, вам также следует добавить туда флаг restrict
, за которым следует pty
.
Другой подход заключается в том, чтобы вместо того, чтобы позволить пользователю выполнять psql на удаленном сервере, позволить ему выполнить соединение ssh, которое позволит ему создать туннель только к порту локального хоста, на котором запущен postgresql, и подключиться локально. к этому.