Это зависит от конфигурации, но, как правило, вы должны иметь возможность копировать то, что делает 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
должны сделать эту работу.