Я ищу способ запустить SSH (в частности, OpenSSH, но не обязательно) и записать все команды, которые я запускаю на удаленном компьютере, в файл локально.
Выполнение каждой команды как независимой команды ssh действительно записывает каждую команду в мою локальную историю, но обычно нежелательно ее запускать, например:
ssh notroot@something.example.com -- foo -a --bar baz
для каждой команды.
Я бы предпочел ssh на сервер обычным способом, либо через сам ssh, либо с помощью команды-оболочки, такой как 'ssh-logging'.
Я предполагаю, что программа сохранит команды, введенные через ssh, в файл на локальном клиентском компьютере в сопоставлении с тем, как это делают оболочки, например, ~/.ssh_history кажется хорошим значением по умолчанию, возможно, переставлено для комбинации пользователь + хост, но я не действительно волнует, где он сохраняет в данный момент.
Короче говоря, я бы хотел, чтобы произошло нечто подобное:
~ $ ssh user@host.example.com
[user@host ~]$ foo --bar
[user@host ~]$ exit
~ $ cat .ssh_history_user@host
foo --bar
exit
~ $
Существует ли такая вещь, либо как неясная конфигурация клиента OpenSSH, либо как часть другого ssh-клиента с открытым исходным кодом /libre, либо как тонкая программа-обертка, которая может просто поместить себя на пути ввода stdin пользователя и прозрачно отправить их в stdin работающей программы во время их входа? (Я слышал, что SecureCRT имеет функцию ведения журнала, которая, возможно, примерно такая, но, по крайней мере, в моей личной жизни у меня нет желания использовать инструменты без FLOSS).