
У меня есть маршрутизатор на базе Linux, на котором не установлен SFTP-сервер. А точнее, когда я sftp user@ipaddress
получаю sh: /user/libexec/sftp-server: not found
ошибку. Я не собираюсь пытаться устранить эту ошибку установкой нового пакета («дистрибутив» относится к маршрутизатору, и мне не интересно пытаться его модифицировать).
Мне интересно найти утилиту командной строки, которая работает как sftp, но использует scp в качестве механизма передачи.
решение1
Вы можете использоватьfish
(файлы передаются по протоколу оболочки). Существуют различные реализации клиента, но ни одна из них не требует какой-либо поддержки сервера, кроме обычного SSH.
решение2
я используюVeam Fast SCPдля этого. Это очень удобно при работе с ESXi, поскольку в нем включен только scp, но он также будет работать с любой машиной с включенным scp.
решение3
Вы можете использовать Midnight Commander, утилиту командной строки. Она знает SCP, FTP, она бесплатна и, вероятно, есть в менеджере пакетов вашего дистрибутива.
В Debian/Ubuntu установите его с помощью:
apt-get install mc -y
Запустите его с помощью:
mc
Нажмите F10 Enter, чтобы выйти
решение4
Может я запутался, но что вы подразумеваете под "интерфейсом типа sftp"? Просто получайте/кладите файлы с помощью scp из командной строки.
Чтобы поместить файл foo из командной строки на вашем хосте Linux, предположив, что «username» существует как пользователь на маршрутизаторе:
$scp foo username@router:~
Это скопирует файл foo в домашний каталог пользователя username.
Чтобы получить файл с маршрутизатора, предположим, что файл находится в домашнем каталоге пользователя «username»:
$scp username@router:~/foo .
Это скопирует файл foo с маршрутизатора в тот каталог, в котором вы находитесь при выполнении команды.
Надеюсь, я правильно понял ваш вопрос.
Удачи.