Действительно ли возможно выполнить некоторые команды SSH с помощью SFTP?

Наличие меня не знающий очень о Ubuntu; это - мой первый вопрос здесь. Поэтому извините меня, если это смотрит недопустимый вопрос.

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

Если это возможно; каков список поддерживаемых команд для работания на основе SFTP удаленно? (Команды SSH или эмуляция SSH); не ПОМЕЩЕННЫЙ, ДОБЕРИТЕСЬ и т.д.

Сценарий, которого я пытаюсь достигнуть, следующий:

  1. Архивируйте некоторое большое количество файлов.
  2. Загрузка через SFTP.
  3. Разархивируйте использование SFTP (если поддерживается); Не SSH

Или по крайней мере если это возможно; смять некоторый сценарий удара и пробежать SFTP

Обновление: у Меня есть другой связанный вопрос; действительно ли возможно отредактировать файл с помощью SFTP? Добавить или отредактировать одну строку в удаленном файле?

Доза, которым нужен сервер SFTP combatibilty?

Совет и если можно поделиться ссылкой к полному списку или дополнительными материалами для чтения!Спасибо

1
задан 7 November 2017 в 13:13

2 ответа

Вы можете только команды выполнения в локальной системе с помощью SFTP. Выполненный help для наблюдения, какие команды доступны:

sftp> help
Available commands:
bye                                Quit sftp
cd path                            Change remote directory to 'path'
chgrp grp path                     Change group of file 'path' to 'grp'
chmod mode path                    Change permissions of file 'path' to 'mode'
chown own path                     Change owner of file 'path' to 'own'
df [-hi] [path]                    Display statistics for current directory or
                                   filesystem containing 'path'
exit                               Quit sftp
get [-afPpRr] remote [local]       Download file
reget [-fPpRr] remote [local]      Resume download file
reput [-fPpRr] [local] remote      Resume upload file
help                               Display this help text
lcd path                           Change local directory to 'path'
lls [ls-options [path]]            Display local directory listing
lmkdir path                        Create local directory
ln [-s] oldpath newpath            Link remote file (-s for symlink)
lpwd                               Print local working directory
ls [-1afhlnrSt] [path]             Display remote directory listing
lumask umask                       Set local umask to 'umask'
mkdir path                         Create remote directory
progress                           Toggle display of progress meter
put [-afPpRr] local [remote]       Upload file
pwd                                Display remote working directory
quit                               Quit sftp
rename oldpath newpath             Rename remote file
rm path                            Delete remote file
rmdir path                         Remove remote directory
symlink oldpath newpath            Symlink remote file
version                            Show SFTP version
!command                           Execute 'command' in local shell
!                                  Escape to local shell
?                                  Synonym for help

Как видно, нет никакой команды SFTP что:

  • позволяет выполнять команды в удаленной системе. Существует только ! для локальных команд.
  • позволяет добавлять к или редактировать файл. Можно получить файл, отредактировать его локально и отложить его.

Я не ожидал бы, что что-либо как это будет существовать, так как случай общего использования для SFTP должен заключить в тюрьму пользователей и обеспечить доступ к файлу без способности выполнить любые команды.

Вместо архивирования, возможно, используйте -C опция с sftp:

 -C      Enables compression (via ssh's -C flag).
1
ответ дан 7 December 2019 в 15:27

ssh следует за следующей структурой:

ssh {user}@{IP} {command}

Когда Вы не предоставляете никакой {пользователь}, это берет текущего пользователя, если Вы не добавляете команды, это соединяется с системой и показывает Вам подсказку. Если Вы действительно добавите команду, то она выполнит его. Пример, показывающий дату от удаленной системы:

ssh 1.1.1.1 date
rinzwind@1.1.1.1's password:
Tue Nov  7 11:17:40 CET 2017

Еще некоторые примеры...

ssh 1.1.1.1 'df -H'
ssh 1.1.1.1 uname -mrs
ssh 1.1.1.1 lsb_release -a

 ssh 1.1.1.1 gzip /tmp/test
 rinzwind@1.1.1.1's password:
 ssh 1.1.1.1
 $ pwd
 /tmp
 $ ls -ltr test.gz
 -rw-rw-rw- 1 rinzwind rinzwind 688 Nov  7 11:18 test.gz

И да, можно добавить строки как этот к пакету и иметь его, выполняют тот сценарий.

0
ответ дан 7 December 2019 в 15:27

Другие вопросы по тегам:

Похожие вопросы: