Как мне перенести файл на мой сервер, используя PuTTY?

16

при вызове SCP в PuTTY на моем компьютере с Win7 он не позволяет мне использовать C: /, но я также не знаю, где на моей локальной машине он будет искать файлы по умолчанию. Ни один из каталога программы или пользовательского каталога не работал. Например, я сохранил файл file.txt рядом с PuTTY.exe, а также в C: \ Users \ Me, но вызов файла SCP file.txt file.txt в PuTTY завершился неудачно оба раза с

cp: невозможно определить файл 'file.txt'

Итак, как мне перенести файл на мой сервер, используя PuTTY?

РЕДАКТИРОВАТЬ: Кроме того, вызов SCP file.txt myserver:file.txtдает похожую ошибку:file.txt: No such file or directory

Trindaz
источник
Вы знаете полный путь к вашему файлу file.txt? сделать SCP полным путем к file.txt myserver: file.txt
Спасибо shadow_boi, но это проблема: использование полного пути означает, в том числе c: \, что дает мне ошибку ssh: Не удалось разрешить имя хоста c: Имя или служба не известны
Trindaz
2
Я полагаю, вы вошли на сервер с помощью putty и набрали комментарий CP, как вы упоминали выше? Это проблема. Теперь вы на сервере, поэтому, когда вы
1
Я не думаю, что замазка одна может сделать работу. WinSCP - хороший графический инструмент для безопасного копирования файлов, Putty отлично работает для этой задачи, также используя инструмент командной строки pscp.
У меня была проблема использования pscp для копирования файла через промежуточный сервер. Этот вопрос послужил мне основой для выяснения. Полные инструкции по переходу от этого вопроса к следующему шагу можно найти здесь: superuser.com/q/577663/57649
Скотт,

Ответы:

13

Вы пробовали что-то вроде

pscp -l user1 c:\ftp\picture.jpg slacker1:/home/user1/pics

Пособие для Putty предполагает

Чтобы отправить файл (ы) на удаленный сервер:

pscp [options] source [source...] [user@]host:target

Таким образом, чтобы скопировать локальный файл c:\documents\foo.txtна сервер example.comот имени пользователя fred в файл, который /tmp/fooвы наберете:

pscp c:\documents\foo.txt fred@example.com:/tmp/foo


постскриптум

Страница загрузки Putty позволяет вам загрузить putty.zipполный набор инструментов Putty или вы можете просто загрузить необходимые инструменты (в этом случае вы, возможно, скачали putty.exe, но еще не загрузили pscp.exe)

RedGrittyBrick
источник
1
У меня установлена ​​шпаклевка. Мне кажется, что pscp не доступен ни внутри оболочки замазки, ни внутри моей локальной оболочки. Не могли бы вы пролить немного больше света? Откуда вы запускаете pscp? Приветствия
JonnyRaa
1
@JonnyLeeds: я запускаю его в командной строке Windows (cmd) из каталога установки Putty, например, C:\Program Files (x86)\PuTTY\pscp.exeв моем случае. Вы можете либо поместить полный путь в двойные кавычки (из-за пробелов в нем), либо добавить каталог в ваш% PATH% (см. Другие ответы здесь, чтобы узнать, как это сделать).
RedGrittyBrick
1
Привет, спасибо за ответ, но все, что у меня есть в моей папке putty, это putty.exe, puttygen.exe и файл
ppk
1
@JonnyLeeds: Вы можете либо просто загрузить pscp.exe с сайта chiark.greenend.org.uk/~sgtatham/putty/download.html, либо загрузить файл putty.zip, содержащий полный согласованный набор последней версии инструментов Putty, и заменить редкий набор у вас есть.
RedGrittyBrick
Отличный ответ. Еще один лакомый кусочек: вы часто можете использовать точку после двоеточия удаленного местоположения, если не знаете, куда вы хотите поместить файл. Например: pscp -l username C: \ dir \ file.txt сервер :.
TOOGAM
6

Решение, которое не использует PuTTY: подключитесь к серверу с FileZilla, используя SFTP для передачи файлов.

Trindaz
источник
5

Нет способа инициировать передачу файла обратно в / из локальной Windows из сеанса SSH, открытого в окне PuTTY.

Хотя последние версии PuTTY поддерживают совместное использование соединений.

Хотя вам все еще нужно запустить совместимый клиент для передачи файлов ( pscpили psftp), новый вход в систему не требуется, он автоматически (если включен) использует существующий сеанс PuTTY.

Чтобы включить общий
доступ, см .: Совместное использование SSH-соединения между инструментами PuTTY .


Альтернативный способ - использовать WinSCP, клиент SFTP / SCP с графическим интерфейсом . Пока вы просматриваете удаленный сайт, вы можете в любое время открыть терминал SSH для этого сайта, используя команду « Открыть в PuTTY» .

Смотрите Открытие сессии в PuTTY .

С помощью дополнительной настройки вы можете даже заставить PuTTY автоматически переходить в тот же каталог, который вы просматриваете в WinSCP.

Смотрите Открытие PuTTY в том же каталоге .

(Я автор WinSCP)

Мартин Прикрыл
источник
0

Я не мог найти pscp, как предложено выше, и в итоге использовал WinScp.

Это клиентская программа с графическим интерфейсом, которая собирает ваши конфиги замазки.

JonnyRaa
источник
chiark.greenend.org.uk/~sgtatham/putty/download.html предлагает pscp.exe и аналогичный файл psftp.exe. The.earth.li/~sgtatham/putty/latest/x86/... (для версии 0.63, которая является последней версией на момент написания этой статьи) может быть простейшие для людей , которые предпочитают быть шли через простой процесс установки с помощью Графический интерфейс, в то время как файл putty.zip также содержит putty.exe и pscp.exe и psftp.exe
TOOGAM
0
  1. В PSFTP откройте папку, в которую вы хотите поместить файл.
    Например. имя файла cd
  2. В командной строке введите: lcd pathtofolder
    Ex. lcd C: \ Users \ Lyn \ Pictures
  3. Нажмите ввод и введите: положить имя файла
    Ex. положить lynhw1.pdf
  4. Нажмите Enter, и файл должен быть передан

Надеюсь, что это работает для вас, как и для меня.
Примечание: я сделал это в PSFTP, используя Putty.

«PSFTP, SFTP-клиент PuTTY, представляет собой инструмент для безопасной передачи файлов между компьютерами с использованием SSH-подключения» - http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter6.html

Загрузите PSFTP на веб-странице http://www.putty.org/ . При загрузке замазки здесь.

Lyn
источник
-2

Если вы хотите автоматизировать этот тип передачи файлов с помощью .bat:

@echo off

set pw=foobemcfoobar

set inp=input.lst

for /F "tokens=*" %%i in (%inp%) do (

echo %%i

echo y | C:\tmp\pscp.exe -C -agent -pw "%pw%" C:\tmp\files\foo.txt root@%%i:/tmp/

echo "=== Accepting SSH, copying ...==="

 )

(где input.lstтекстовый файл с указанными целями)

Нин Кан
источник
Хотя, возможно, имеет отношение к теме , это не отвечает на вопрос.
Я говорю Восстановить Монику
Также не предлагайте людям слепо принимать ключ хоста echo y. Вы теряете безопасность, делая это.
Мартин Прикрыл
Ммм согласился, «эхо у» - это проблема безопасности. Что касается релевантности, я просто взял эту копию файла на шаг вперед, потому что однажды попал в ту же ситуацию
Нин Кан