ssh-agent, но для обычных паролей SSH (не паролей закрытого ключа)

Я ищу утилиту для Linux, которая позволит мне избежать повторного ввода паролей SSH каждый раз, когда я вхожу в систему, то есть что-то вроде ssh-agent, но для обычных старых паролей вместо кодовых фраз закрытого ключа SSH.

Просто использовать ключи SSH не вариант, потому что по какой-то причине они были отключены на рассматриваемом сервере. Я также предпочел бы не хранить пароли постоянно на своем жестком диске (например, в ~/.ssh/config), поэтому я специально прошу что-то вроде ssh-agent, который работает для каждого сеанса рабочего стола.

Ответы (1)

Клиент 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'