1

Я работаю на Mac, и мои скрипты взаимодействуют с цепочкой для ключей (кодирование и т.д.). Что касается El Capitan, взаимодействие с цепочкой для ключей очень разное в зависимости от того, запущен ли процесс через SSH или локально. После запуска процесса (например, в нашем случае длительным процессом является подчиненный jenkins, а различные сценарии подписания кода запускаются с помощью заданий jenkins поверх этого процесса) существует простой способ определить, был ли он запущен через SSH. или локально?

В идеале какой-то ps -ef | и т.д ... типа скрипт?

2 ответа2

1

Вы можете проверить вывод ps (ps auwx | grep java) чтобы увидеть, имеет ли процесс, связанный с подчиненным jenkins, управляющий терминал. Если это произойдет, скорее всего, он был запущен через SSH вместо VNC.

USER  PID  %CPU  %MEM  VSZ  RSS  TT  STAT  STARTED  TIME  COMMAND

Если столбец TT - ??, у процесса нет управляющего терминала. Как правило, вы увидите что-то вроде "s014", если это был SSH.

0

OpenSSH sshd добавляет несколько переменных среды в среду для процессов, которые он запускает. Вы можете найти некоторые из специфичных для SSH:

$ ssh localhost
Last login: Fri Sep 16 14:05:49 2016
$ set | grep SSH
SSH_CLIENT='::1 50368 22'
SSH_CONNECTION='::1 50368 ::1 22'
SSH_TTY=/dev/ttys001
$

Полный список переменных и их значения описаны на странице руководства ssh.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .