scp : "неожиданное имя файла: . ", но я не вижу "."

scp : "неожиданное имя файла: . ", но я не вижу "."

Я хочу scpсценарий .sh, /dev/shmно он мне дает

error: unexpected filename: .

Я даже не вижу, где .в сценарии или справочнике можно было бы найти хоть одно упоминание.

Полная команда была такой:

scp -r /opt/PEAS/linPEAS/linpeas.sh [email protected]: /dev/shm

(это из игры типа CTF для новичков, хакеров). Я пробовал добавлять, $(pwd)как предлагалось в других темах, но безрезультатно.

решение1

scplike cpподдерживает копирование из нескольких источников в один целевой каталог. В вашей команде

scp -r /opt/PEAS/linPEAS/linpeas.sh [email protected]: /dev/shm

/opt/PEAS/linPEAS/linpeas.shи [email protected]:являются источниками, /dev/shmявляется (локальной) целью. Для локального копирования scpвозвращается к cp. Ваша команда примерно эквивалентна:

cp -r /opt/PEAS/linPEAS/linpeas.sh /dev/shm
scp -r [email protected]: /dev/shm

а [email protected]:в последнем случае эквивалентно [email protected]:.и означает " .(текущий рабочий каталог) после ssh-ing to [email protected]".

Хотя полностью локальный cp -r . /dev/shm(или даже scp -r . /dev/shm) может работать, scpотказывается загружать удаленныйфайлназванный .. (Я имею в виду устаревший scp, который использует SCP, а не SFTP. См. «предварительную заметку» вэтот мой ответ. Похоже, вы scpиспользуете SCP. Мои тесты показывают, что scpиспользование SFTP позволяет загружать данные .с сервера.)


Учитывая все вышесказанное, я подозреваю, что вы, возможно, не хотите, чтобы local /dev/shmбыл целевым каталогом. Возможно, вы хотите:

scp -r /opt/PEAS/linPEAS/linpeas.sh [email protected]:/dev/shm

где [email protected]:/dev/shmудаленная цель, это означает /dev/shmна 10.10.87.42. Команда выше загрузит локальную linpeas.shвудаленный /dev/shm. Вам на самом деле не нужно -r, если только linpeas.shэто не каталог.

решение2

/dev/shmэто разделяемая память Linux, к которой можно обращаться как к диску. Это не SSH-сервер.

Вам следует использовать:

scp -r /opt/PEAS/linPEAS/linpeas.sh /dev/shm

Но я не уверен, что это то, что вы хотите сделать. Размер ограничен, и данные будут потеряны после перезагрузки.

См. например Что такое /dev/shm и его практическое использование.

Связанный контент