Не как буквальный ответ на ваш вопрос, но как лучший способ удовлетворить ваши реальные потребности (подключение через SSH к удаленной машине через систему, которой вы не доверяете для хранения вашего закрытого ключа) - вы должны использоватьПереадресация агента SSH.
Когда вы передаете свой закрытый ключ в удаленную систему, даже временно, он может быть захвачен;если злоумышленник записывает все, что происходит в системе с Sysdig , например, записи по FIFO из подстановки процесса (или чтения, выполненные клиентским процессом SSH), будут отображаться как день.
Вместо передачи секретного ключа в удаленную систему, переадресация агента отправляет запрос на подпись обратно из удаленной системы на ваш исходный компьютер.(Есть даже агенты SSH для Android, так что вы можете переслать запрос на ваш телефон - предположительно устройство, которому вы доверяете - так, что закрытый ключ никогда не покинет его).Аналогично, аппаратное устройство, такое как YubiKey, может хранить ваш закрытый ключ и выполнять операции подписи от имени клиента SSH - от имени удаленного компьютера, когда запрашивается переадресация агента.
Для простого случая:
local$ [[ $SSH_AUTH_SOCK ]] || eval "$(ssh-agent -s)"
local$ ssh-add # load the key into your local agent
local$ ssh -A host1 # connects to host1 with agent forwarding enabled
host1$ ssh host2 # asks the ssh agent on "local" to authenticate to host2
host2$