Как я могу получить имя пользователя, который вошел в Oracle / настроить ssh, чтобы не нуждаться в имени пользователя? - PullRequest
0 голосов
/ 19 марта 2019

Я пишу сценарий, который будет проверять некоторые файлы, не требуя пароля от моей локальной базы данных к удаленной базе данных. В настоящее время я настроил ssh (следуя этим инструкциям: http://www.linuxproblem.org/art_9.html), и я могу использовать

scp /home/oracle/sendfiles/* myUsername@remoteServer:/home/oracle/receivefiles/

Для отправки файлов. Однако для этого необходимо, чтобы в моем сценарии была жестко задана myUsername. Я хотел бы иметь возможность запустить

scp /home/oracle/sendfiles/* remoteServer:/home/oracle/receivefiles/

Чтобы другие пользователи могли использовать мой сценарий без указания своего имени пользователя. Есть ли другой способ настроить ssh, поэтому мне не нужно указывать имя пользователя? Прямо сейчас, когда я запускаю свой скрипт без указания имени пользователя, он запрашивает у меня пароль oracle@remoteServer.

1 Ответ

1 голос
/ 19 марта 2019

На данный момент вы, похоже, запустили ssh-keygen как oracle на локальном сервере, но добавили содержимое локально сгенерированного файла /home/oracle/.ssh/id_rsa.pub в свой собственный authorized_keys файл - т.е. /home/myUsername/.ssh/authorized_keys - на удаленном сервере.

Из контекста, я подозреваю вас и других пользователей, войдите в свои локальные и удаленные ящики под своими учетными записями, а затем su в учетную запись oracle. Благодаря тому, как вы настроили ключи, любой локальный пользователь, который может получить доступ к учетной записи oracle на локальном сервере, теперь имеет доступ к вашей личной учетной записи на удаленном сервере - это не то, что вы хотели.

И хотя ваша первая команда, задающая имя удаленного пользователя, работает, файлы на удаленном конце будут принадлежать вам, а не oracle; Это означает, что целевой каталог /home/oracle/receivefiles/ должен быть по крайней мере доступен для групповой записи и, возможно, для записи во всем мире. В этом может не быть необходимости, и, как правило, это не очень хорошая идея - мнения различаются, но домашние каталоги, как правило, запираются настолько плотно, насколько это возможно, особенно для таких чувствительных учетных записей, как этот. (Вы не хотите, чтобы кто-то, кто получает доступ к серверу с низким уровнем привилегий, мог сделать что-то неприятное, скажем, отредактировав Oracle .profile или создав новый файл точек, который, например, удаляет все файлы данных БД далее раз кто-то входит в эту учетную запись ...)

Содержимое id_rsa.pub необходимо добавить в /home/oracle/.ssh/authorized_keys на удаленном сервере (и удалить из /home/myUsername/.ssh/authorized_keys!). После того, как вы это сделаете, вы и все, кто имеет su 'до oracle на локальном сервере, смогут выполнить:

scp -p /home/oracle/sendfiles/* remoteServer:/home/oracle/receivefiles/

без запроса пароля, а файлы на удаленном конце будут принадлежать oracle вместо вас. (Флаг -p означает, что права доступа и временные метки также будут сохранены.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...