Могу ли я передавать файлы по SSH?

Могу ли я передавать файлы по SSH?

Я используюШпатлевкана Windows 7 для SSH в моей школьной компьютерной лаборатории. Могу ли я передавать файлы с моей машины Windows моему пользователю на школьных машинах с помощью SSH?

решение1

Используйте инструмент PSCP со страницы загрузки putty:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

PSCP — это putty-версия scp, которая представляет собой команду cp (копировать) через ssh.

PSCP необходимо установить на вашем компьютере с Windows (просто скачал, правда, процесса установки нет. В разделе «Упакованные файлы» pscp.exe уже включен). На серверах школы ничего устанавливать не нужно. PSCP и scp используют ssh для подключения.

Чтобы ответить на вопрос об использовании из комментариев:

Чтобы загрузить данные с вашего компьютера на удаленный сервер:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path

Это загрузит файл file.txt в указанный каталог на сервере. Если конечная часть пути назначения НЕ является каталогом, это будет новое имя файла. Вы также можете сделать это, чтобы загрузить файл с другим именем:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path\newname.txt

Чтобы загрузить файл с удаленного сервера на свой компьютер:

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\

или

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\newfile.txt

или

c:\pscp user@remote:\home\user\some\file.txt .

С одинокой точкой в ​​конце. Это загрузит указанный файл в текущий каталог.

Поскольку комментарий слишком далеко, я должен также отметить, что WinSCP существует и предоставляет графический интерфейс для всего этого, если это интересно:http://winscp.net/eng/download.php

решение2

вы можете использовать Windows PowerShell (на самом деле, это команда OpenSSH, ее можно использовать и в любой ОС UNIX):

scp -P <non-default target ssh port> "<source file>" <username>@<hostname/address>:<destination path>

-Pфлаг можно опустить, если ssh открыт на порту по умолчанию (22)

поменять местами локальный и удаленный пути для копирования файла с удаленного хоста

например:

  • копирование файла "ps.key" через ssh
  • локальная ОС — Windows 10
  • удаленный адрес 192.168.88.242, ssh (демон) работает на порту 1688
  • удаленное имя пользователя - "ник"

команда:

локальный(win)->удаленный(unix):

scp -P 1688 "D:\MEGA\ps.key" [email protected]:/home/nick/ps.key

удаленный->локальный (копирование с удаленного хоста):

scp -P 1688 [email protected]:/home/nick/ps.key "D:\MEGA\ps.key"

После этого вам следует подтвердить отпечаток целевого ключа (если вы ранее не подключались к этому хосту через PowerShell) и пройти аутентификацию на удаленном хосте (ввести пароль пользователя или пароль ключа SSH, если вы не используете SSH-Agent).

должно работать на win10 без каких-либо установок, так как OpenSSH там встроен

решение3

Возможно, вам придется использовать косую черту (/) для взаимодействия с серверами LINUX/UNIX.

c:\pscp c:\some\path\to\a\file.txt user@remote:/home/user/some/path

решение4

Вы можете просто объединить множество файлов с помощью tar:

tar -cz . | ssh me@school -- 'tar -C/path/to/target/dir -xz'

...который рекурсивно сожмет и передаст поток всех файлов в текущем каталоге на локальной машине по целевому пути, одновременно распаковывая и расширяя поток на удаленной машине.

Аналогичные действия можно выполнить для всего, что пишет в stdout. catОчевидный выбор:

cat ./localfile | ssh user@remote 'cat >./remotefile'

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