Это зависит от конфигурации, но, как правило, вы должны иметь возможность копировать то, что делает ssh-copy-id в пакетном файле sftp :
!cat ~/.ssh/id_rsa.pub > /tmp/authorized_keys # prepare filename with keys
mkdir .ssh
put /tmp/authorized_keys .ssh/
!rm /tmp/authorized_keys # cleanup
но это имеет свои ограничения:
- Если в
authorized_keys ключах уже есть какой-то ключ, он будет перезаписан (вы можете загрузить существующий файл локально и добавить локально
- Если каталог уже существует, он может потерпеть неудачу
- Требуется только
id_rsa (как подтверждение концепции). Добавить другие ключи довольно просто
Сохранение вышеуказанного файла в copy-id.sftp и запуск sftp -b copy-id.sftp your_host должны сделать эту работу.