Вы можете сделать это с помощью агента SSH. Большинство сред рабочего стола запускают его для вас; вы можете добавить свой ключ в него, выполнив
ssh-add
Если вам нужно запустить агент, выполните
eval $(ssh-agent)
(это устанавливает ряд переменных окружения).
Опция -t
в ssh-agent
позволит вам указать таймаут. Подробнее см. в Настройка таймаута по умолчанию для агента SSH.
Если вы отключите выделение pty с помощью -T
, sshd будет использовать пару каналов вместо двунаправленного -pty для связи с процессом, выполняющим удаленную команду.
Вы можете взглянуть на функциюdo_exec_no_pty()
в исходном коде OpenSSH, если она нигде не задокументирована.dropbear
(другая реализация sshd )делает что-то подобное.
В случае, когда pty является выделенной(-t
опцией или удаленная команда не указана ), на удаленном компьютере будет выделен только один pty; клиент ssh не будет размещать pty на локальной машине; он просто переключит необработанный режим на свой стандартный ввод, если это tty.