Как записать свое имя пользователя в Box A после того, как вы включили SSHed в Box B? - PullRequest
0 голосов
/ 20 мая 2009

Возможно, не самый лучший вопрос, но, надеюсь, это простая проблема.

Сценарий - SSHing из личной учетной записи в блоке A к общей учетной записи в блоке B. Сценарий, выполняющийся в блоке B, должен захватывать имя личной учетной записи для целей регистрации. Есть ли способ получить это, либо через сам SSH, либо через некоторую информацию, полученную оболочкой? Мы используем ssh2 (Reflections) и KornShell (ksh) в Solaris.

Ответы [ 2 ]

1 голос
/ 20 мая 2009

Если у вас есть полный контроль над клиентским компьютером, вы можете развернуть idd для получения имени пользователя.

Полная процедура получения имени из скрипта:

  1. Пройдите по дереву процессов, найдите sshd
  2. Пройдите netstat -p, чтобы найти удаленный IP-адрес и порт.
  3. Подключитесь к клиенту через порт 113 и спросите.

Возможно, вам придется отключить разделение привилегий, чтобы это работало как есть; однако, это должно быть тривиально изменить, чтобы работать без него.

0 голосов
/ 20 мая 2009
  • Невозможно надежно зарегистрировать удаленное имя пользователя
  • Вы можете записать IP-адрес соединения (см. Переменную SSH_CONNECTION)
  • У вас может быть стандарт, в котором они используют псевдоним для ssh, который регистрирует удаленное имя пользователя как часть процесса входа в систему, или где они сохраняют свое имя пользователя в файле .ssh / environment (но позволяя устанавливать среды). может потребоваться изменение конфигурации ssh / sshd).

    alias sshblah = 'ssh blah "REMOTEUSER = $ USER; bash' (За исключением того, что это не работает, и я не пытался выяснить, почему - и было бы иначе, если бы вы использовали tcsh и т. Д.).

Вы можете использовать передачу среды таким образом и выбрать, какие переменные вы разрешаете устанавливать. Вам нужно заставить пользователей установить альтернативу $ USER, например, $ REMOTE_USER = $ USER, а затем разрешить проход через $ REMOTE_USER. И вы полагаете, что они не установили его неправильно, или забыли установить его (вы можете справиться с этим случаем с небольшим раздражением, изменив этот механизм ).

Обратите внимание, что у вас почти есть , чтобы доверять клиенту, подключающемуся, чтобы сказать вам, кто пользователь - вы можете усложнить / раздражить подделку имени пользователя, но если вы не используете сертификаты для отдельных пользователей вместо общий логин / пароль, который они все знают, вы не можете проверить, кто подключен.

...