Я ищу утилиту для Linux, которая позволит мне избежать повторного ввода паролей SSH каждый раз, когда я вхожу в систему, то есть что-то вроде ssh-agent, но для обычных старых паролей вместо кодовых фраз закрытого ключа SSH.
Просто использовать ключи SSH не вариант, потому что по какой-то причине они были отключены на рассматриваемом сервере. Я также предпочел бы не хранить пароли постоянно на своем жестком диске (например, в ~/.ssh/config
), поэтому я специально прошу что-то вроде ssh-agent, который работает для каждого сеанса рабочего стола.
Клиент Linux по умолчанию ssh
может держать соединения открытыми для повторного использования.
Предварительные условия:
Вам нужно настроить ~/.ssh/config
для включения ControlMaster и ControlPath:
Host server
Hostname example.com
User username
ServerAliveInterval 120
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Затем просто введите:
ssh -fN server
# -f Requests ssh to go to background just before command execution.
# -N Do not execute a remote command.
Вы должны ввести свой пароль.
Это открывает соединение и переводит его в фоновый режим.
Затем запустите ssh server
, он будет повторно использовать это соединение без необходимости вводить пароль.
Вы можете закрывать и открывать соединения без необходимости ввода пароля, пока фоновое соединение не будет прервано или пока вы не перезагрузите компьютер. Этот метод также работает на (нескольких) серверах переходов.
Чтобы закрыть открытое соединение, выполните:
ssh -O exit server
или просто убить процесс:
pkill -f 'ssh -fN server'