Я используюШпатлевкана 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'