Linux ssh client регистрирует все команды

Я собираюсь настроить консоль Linux для входа в устройства Cisco через ssh только с этой Linux-машины. Как я могу настроить ssh-клиент в Linux для регистрации всех команд, применяемых к устройствам Cisco?

3
задан 18 April 2016 в 12:38
3 ответа

Я нашел решение с помощью "| tee -a logfile". Есть ли другое решение для этого? Мне нужны только команды в файле журнала, а не весь вывод, если это возможно.

0
ответ дан 3 December 2019 в 06:58

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

Вызов может выглядеть следующим образом, если вы хотите добавить к одному файлу:

script -a -f -c 'ssh cisco.example.com' /var/local/log/ssh-cisco.log

Или вот так, если вам нужны отдельные файлы для каждого вызова:

script -f -c 'ssh cisco.example.com' "/var/local/log/ssh-cisco-$(date date +%Y-%m-%d_%H:%M:%S.%N).$$.log"

Если бы пользователю потребовалось вводить эти команды самостоятельно, он, конечно, был бы слишком ленив, чтобы делать все эти дополнительные вводы для включить ведение журнала. И написание всего этого в сценарии оболочки может быть недостаточно для вас, поскольку я предполагаю, что вы не хотите, чтобы пользователи могли обходить ведение журнала.

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

Вы можете настроить отдельную группу, которая имеет доступ для чтения к ключу ssh и доступ для записи в каталог журналов. Затем вы можете заключить команду script в исполняемый файл set-group-id или sudo .

2
ответ дан 3 December 2019 в 06:58

Поправьте меня, если я ошибаюсь, но AFAIK, даже устройства CISCO имеют .bash_history файл. Когда вы входите в систему, все команды сохраняются там в порядке шкалы времени. Поэтому я не вижу смысла просить SSH-клиент сохранять каждую вводимую вами команду.

0
ответ дан 3 December 2019 в 06:58

Теги

Похожие вопросы