1

На самом деле ... сервер , который не имеет оболочки SSH?

Когда вы входите в систему, многие хосты говорят:

Shell access is not enabled on your account!
If you need shell access please contact support.

Но они поддерживают SFTP и id_ логин для SFTP.

Можно ли использовать SFTP в командной строке для передачи моего открытого ключа для входа в систему?

1 ответ1

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .