Как скопировать файл с windows на linux через putty

Ответы на часто задаваемые вопросы.

В статье мы расскажем, как передать файлы через SSH на разных операционных системах — Windows и Linux.

  1. Что нужно для подключения
  2. Как скопировать файл через SSH на Linux
    • Как отправить файл по SSH с локального компьютера на сервер
    • Как скачать файлы с удаленного сервера на компьютер
  3. Как скопировать файлы по SSH на Windows
    • Как загрузить файл с компьютера на сервер
    • Как скачать файл через SSH на локальный компьютер

Для подключения к серверу вам потребуются:

  • IP-адрес или имя сервера,
  • логин пользователя (в том числе root),
  • пароль пользователя,
  • порт.

Чаще всего копирование файлов через SSH делают с помощью двух мини-программ:

  1. scp (Secure Copy) — утилита для Linux. Она позволяет безопасно передать или скачать файл по протоколу SSH. Программа scp входит в комплект OpenSSH и не требует установки.
  2. pscp.exe — это утилита для Windows. Она используется по тому же назначению, что и scp: подключение к серверу по SSH и работа с файлами. Эта мини-программа входит в состав PuTTY: ее можно скачать на официальном сайте. Процедура настройки SSH-клиента описана в нашей статье.

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

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

Как скопировать файл через SSH на Linux

Копирование файлов по SSH на Linux можно сделать с помощью scp. Эта утилита позволяет:

  • передать файл с локального компьютера на удаленный сервер,
  • скачать файл с удаленного сервера на локальный компьютер.

Команда scp имеет следующий синтаксис:

scp опция источник получатель

Как отправить файл по SSH с локального компьютера на сервер

Чтобы загрузить файл:

  1. Подключитесь к серверу по SSH.
  2. Выполните команду:

scp /home/test.doc username@servername:/directory

Где:

  • /home/test.doc — путь к файлу на локальном компьютере;
  • username — имя SSH-пользователя;
  • servername — имя сервера или его IP-адрес;
  • directory — директория на сервере, в которую нужно загрузить файл.

Готово, вы загрузили файл на сервер.

Как скачать файлы с удаленного сервера на компьютер

Чтобы загрузить файл:

  1. Подключитесь к серверу по SSH.
  2. Выполните команду:

scp username@servername:/directory/test.doc /home

Где:

  • /directory/test.doc — путь к файлу на сервере;
  • username — имя SSH-пользователя;
  • servername — имя сервера или его IP-адрес;
  • home — папка на компьютере, в которую нужно загрузить файл.

Готово, вы скачали файл на компьютер.

Как скопировать файлы по SSH на Windows

Копирование через SSH на ОС Windows выполняется с помощью утилиты pscp.exe из набора PuTTY.

Как загрузить файл с компьютера на сервер

Чтобы загрузить файл:

  1. Подключитесь к серверу по SSH.
  2. Выполните команду:

pscp C:/documents/test.doc username@servername:/directory

Где:

  • /documents/test.doc — путь к файлу на локальном компьютере;
  • username — имя SSH-пользователя;
  • servername — имя сервера или его IP-адрес;
  • directory — директория на сервере, в которую нужно загрузить файл.

Если название файла или путь содержит пробелы, заключите его в кавычки:

pscp “C:/documents/test 1.doc” username@servername:/directory

Готово, вы загрузили файл на сервер.

Как скачать файл через SSH на локальный компьютер

Чтобы загрузить файл:

  1. Подключитесь к серверу по SSH.
  2. Выполните команду:

pscp username@servername:/directory/test.doc C:/documents

Где:

  • username — имя SSH-пользователя;
  • servername — имя сервера или его IP-адрес;
  • directory/test.doc — путь к файлу на сервере;
  • /documents — директория на локальном компьютере, в которую нужно загрузить файл.

Если название файла или путь содержит пробелы, заключите его в кавычки:

pscp username@servername:”/directory/test 1.doc” C:/documents

Готово, вы скачали файл на компьютер.

предыдущая глава | содержание | следующая глава

  • 5.1 Starting PSCP
  • 5.2 PSCP Usage
    • 5.2.1 The basics
    • 5.2.2 Options
    • 5.2.3 Return value
    • 5.2.4 Using public key authentication with PSCP

PSCP, the PuTTY Secure Copy client, is a tool for transferring files securely between computers using an SSH connection.

If you have an SSH-2 server, you might prefer PSFTP (see chapter 6) for interactive use. PSFTP does not in general work with SSH-1 servers, however.

5.1 Starting PSCP

PSCP is a command line application. This means that you cannot just double-click on its icon to run it and instead you have to bring up a console window. With Windows 95, 98, and ME, this is called an «MS-DOS Prompt» and with Windows NT, 2000, and XP, it is called a «Command Prompt». It should be available from the Programs section of your Start Menu.

To start PSCP it will need either to be on your PATH or in your current directory. To add the directory containing PSCP to your PATH environment variable, type into the console window:

set PATH=C:pathtoputtydirectory;%PATH%

This will only work for the lifetime of that particular console window. To set your PATH more permanently on Windows NT, 2000, and XP, use the Environment tab of the System Control Panel. On Windows 95, 98, and ME, you will need to edit your AUTOEXEC.BAT to include a set command like the one above.

5.2 PSCP Usage

Once you’ve got a console window to type into, you can just type pscp on its own to bring up a usage message. This tells you the version of PSCP you’re using, and gives you a brief summary of how to use PSCP:

Z:owendadmin>pscp
PuTTY Secure Copy client
Release 0.73
Usage: pscp [options] [user@]host:source target
       pscp [options] source [source...] [user@]host:target
       pscp [options] -ls [user@]host:filespec
Options:
  -V        print version information and exit
  -pgpfp    print PGP key fingerprints and exit
  -p        preserve file attributes
  -q        quiet, don't show statistics
  -r        copy directories recursively
  -v        show verbose messages
  -load sessname  Load settings from saved session
  -P port   connect to specified port
  -l user   connect with specified username
  -pw passw login with specified password
  -1 -2     force use of particular SSH protocol version
  -4 -6     force use of IPv4 or IPv6
  -C        enable compression
  -i key    private key file for user authentication
  -noagent  disable use of Pageant
  -agent    enable use of Pageant
  -hostkey aa:bb:cc:...
            manually specify a host key (may be repeated)
  -batch    disable all interactive prompts
  -no-sanitise-stderr  don't strip control chars from standard error
  -proxycmd command
            use 'command' as local proxy
  -unsafe   allow server-side wildcards (DANGEROUS)
  -sftp     force use of SFTP protocol
  -scp      force use of SCP protocol
  -sshlog file
  -sshrawlog file
            log protocol details to a file

(PSCP’s interface is much like the Unix scp command, if you’re familiar with that.)

5.2.1 The basics

To receive (a) file(s) from a remote server:

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

So to copy the file /etc/hosts from the server example.com as user fred to the file c:tempexample-hosts.txt, you would type:

pscp fred@example.com:/etc/hosts c:tempexample-hosts.txt

To send (a) file(s) to a remote server:

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

So to copy the local file c:documentsfoo.txt to the server example.com as user fred to the file /tmp/foo you would type:

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

You can use wildcards to transfer multiple files in either direction, like this:

pscp c:documents*.doc fred@example.com:docfiles
pscp fred@example.com:source/*.c c:source

However, in the second case (using a wildcard for multiple remote files) you may see a warning saying something like «warning: remote host tried to write to a file called «terminal.c» when we requested a file called «*.c». If this is a wildcard, consider upgrading to SSH-2 or using the «-unsafe» option. Renaming of this file has been disallowed».

This is due to a fundamental insecurity in the old-style SCP protocol: the client sends the wildcard string (*.c) to the server, and the server sends back a sequence of file names that match the wildcard pattern. However, there is nothing to stop the server sending back a different pattern and writing over one of your other files: if you request *.c, the server might send back the file name AUTOEXEC.BAT and install a virus for you. Since the wildcard matching rules are decided by the server, the client cannot reliably verify that the filenames sent back match the pattern.

PSCP will attempt to use the newer SFTP protocol (part of SSH-2) where possible, which does not suffer from this security flaw. If you are talking to an SSH-2 server which supports SFTP, you will never see this warning. (You can force use of the SFTP protocol, if available, with -sftp — see section 5.2.2.6.)

If you really need to use a server-side wildcard with an SSH-1 server, you can use the -unsafe command line option with PSCP:

pscp -unsafe fred@example.com:source/*.c c:source

This will suppress the warning message and the file transfer will happen. However, you should be aware that by using this option you are giving the server the ability to write to any file in the target directory, so you should only use this option if you trust the server administrator not to be malicious (and not to let the server machine be cracked by malicious people). Alternatively, do any such download in a newly created empty directory. (Even in «unsafe» mode, PSCP will still protect you against the server trying to get out of that directory using pathnames including «..».)

5.2.1.1 user

The login name on the remote server. If this is omitted, and host is a PuTTY saved session, PSCP will use any username specified by that saved session. Otherwise, PSCP will attempt to use the local Windows username.

5.2.1.2 host

The name of the remote server, or the name of an existing PuTTY saved session. In the latter case, the session’s settings for hostname, port number, cipher type and username will be used.

5.2.1.3 source

One or more source files. Wildcards are allowed. The syntax of wildcards depends on the system to which they apply, so if you are copying from a Windows system to a UNIX system, you should use Windows wildcard syntax (e.g. *.*), but if you are copying from a UNIX system to a Windows system, you would use the wildcard syntax allowed by your UNIX shell (e.g. *).

If the source is a remote server and you do not specify a full pathname (in UNIX, a pathname beginning with a / (slash) character), what you specify as a source will be interpreted relative to your home directory on the remote server.

5.2.1.4 target

The filename or directory to put the file(s). When copying from a remote server to a local host, you may wish simply to place the file(s) in the current directory. To do this, you should specify a target of .. For example:

pscp fred@example.com:/home/tom/.emacs .

…would copy /home/tom/.emacs on the remote server to the current directory.

As with the source parameter, if the target is on a remote server and is not a full path name, it is interpreted relative to your home directory on the remote server.

5.2.2 Options

PSCP accepts all the general command line options supported by the PuTTY tools, except the ones which make no sense in a file transfer utility. See section 3.8.3 for a description of these options. (The ones not supported by PSCP are clearly marked.)

PSCP also supports some of its own options. The following sections describe PSCP’s specific command-line options.

5.2.2.1 -ls list remote files

If the -ls option is given, no files are transferred; instead, remote files are listed. Only a hostname specification and optional remote file specification need be given. For example:

pscp -ls fred@example.com:dir1

The SCP protocol does not contain within itself a means of listing files. If SCP is in use, this option therefore assumes that the server responds appropriately to the command ls -la; this may not work with all servers.

If SFTP is in use, this option should work with all servers.

5.2.2.2 -p preserve file attributes

By default, files copied with PSCP are timestamped with the date and time they were copied. The -p option preserves the original timestamp on copied files.

5.2.2.3 -q quiet, don’t show statistics

By default, PSCP displays a meter displaying the progress of the current transfer:

mibs.tar          |   168 kB |  84.0 kB/s | ETA: 00:00:13 |  13%

The fields in this display are (from left to right), filename, size (in kilobytes) of file transferred so far, estimate of how fast the file is being transferred (in kilobytes per second), estimated time that the transfer will be complete, and percentage of the file so far transferred. The -q option to PSCP suppresses the printing of these statistics.

5.2.2.4 -r copies directories recursively

By default, PSCP will only copy files. Any directories you specify to copy will be skipped, as will their contents. The -r option tells PSCP to descend into any directories you specify, and to copy them and their contents. This allows you to use PSCP to transfer whole directory structures between machines.

5.2.2.5 -batch avoid interactive prompts

If you use the -batch option, PSCP will never give an interactive prompt while establishing the connection. If the server’s host key is invalid, for example (see section 2.2), then the connection will simply be abandoned instead of asking you what to do next.

This may help PSCP’s behaviour when it is used in automated scripts: using -batch, if something goes wrong at connection time, the batch job will fail rather than hang.

5.2.2.6 -sftp, -scp force use of particular protocol

As mentioned in section 5.2.1, there are two different file transfer protocols in use with SSH. Despite its name, PSCP (like many other ostensible scp clients) can use either of these protocols.

The older SCP protocol does not have a written specification and leaves a lot of detail to the server platform. Wildcards are expanded on the server. The simple design means that any wildcard specification supported by the server platform (such as brace expansion) can be used, but also leads to interoperability issues such as with filename quoting (for instance, where filenames contain spaces), and also the security issue described in section 5.2.1.

The newer SFTP protocol, which is usually associated with SSH-2 servers, is specified in a more platform independent way, and leaves issues such as wildcard syntax up to the client. (PuTTY’s SFTP wildcard syntax is described in section 6.2.2.) This makes it more consistent across platforms, more suitable for scripting and automation, and avoids security issues with wildcard matching.

Normally PSCP will attempt to use the SFTP protocol, and only fall back to the SCP protocol if SFTP is not available on the server.

The -scp option forces PSCP to use the SCP protocol or quit.

The -sftp option forces PSCP to use the SFTP protocol or quit. When this option is specified, PSCP looks harder for an SFTP server, which may allow use of SFTP with SSH-1 depending on server setup.

5.2.2.7 -no-sanitise-stderr: control error message sanitisation

The -no-sanitise-stderr option will cause PSCP to pass through the server’s standard-error stream literally, without stripping control characters from it first. This might be useful if the server were sending coloured error messages, but it also gives the server the ability to have unexpected effects on your terminal display. For more discussion, see section 7.2.3.5.

5.2.3 Return value

PSCP returns an ERRORLEVEL of zero (success) only if the files were correctly transferred. You can test for this in a batch file, using code such as this:

pscp file*.* user@hostname:
if errorlevel 1 echo There was an error

5.2.4 Using public key authentication with PSCP

Like PuTTY, PSCP can authenticate using a public key instead of a password. There are three ways you can do this.

Firstly, PSCP can use PuTTY saved sessions in place of hostnames (see section 5.2.1.2). So you would do this:

  • Run PuTTY, and create a PuTTY saved session (see section 4.1.2) which specifies your private key file (see section 4.23.8). You will probably also want to specify a username to log in as (see section 4.15.1).
  • In PSCP, you can now use the name of the session instead of a hostname: type pscp sessionname:file localfile, where sessionname is replaced by the name of your saved session.

Secondly, you can supply the name of a private key file on the command line, with the -i option. See section 3.8.3.18 for more information.

Thirdly, PSCP will attempt to authenticate using Pageant if Pageant is running (see chapter 9). So you would do this:

  • Ensure Pageant is running, and has your private key stored in it.
  • Specify a user and host name to PSCP as normal. PSCP will automatically detect Pageant and try to use the keys within it.

For more general information on public-key authentication, see chapter 8.

I am using putty to connect to a linux computer using ssh. I am on a local windows machine that has a file. I want to transfer a file from my windows machine to the linux machine. How could I do this in command line without filezilla?

asked Apr 21, 2016 at 18:19

BishopSankey's user avatar

2

If ftp server is running in your Linux box then you can transfer files with filezilla (since it is ftp client). If that is not the case then download WinSCP a gui software like filezilla but uses SSH to transfer files.

answered Apr 21, 2016 at 18:25

kakurala's user avatar

kakuralakakurala

8146 silver badges15 bronze badges

If you are already on windows why not use GUI based clients? WinSCP is a good free client for transfers over SSH. It can transfer multiple files and also has auto resume facility.

answered Apr 21, 2016 at 18:27

Mrinal's user avatar

MrinalMrinal

3661 gold badge4 silver badges12 bronze badges

Using Putty’s PSCP command (which you can get from here) you can copy the file to your Linux computer by doing:

pscp.exe file_to_copy username@server_name:/path/destination_file_name

answered Apr 21, 2016 at 18:29

brandonhuddle's user avatar

The putty equivalent to scp is pscp. Get it where you got putty

scp is the ssh way to copy files to and from something running a ssh server. So you could send your file from the windows machine to Linux on the windows command line

answered Apr 21, 2016 at 18:23

infixed's user avatar

infixedinfixed

1,1257 silver badges14 bronze badges

We can do that using winscp. The command will be:

From command promopt:

scp «C:files*.*» username@linuxserver:/home/files/

answered Apr 29, 2020 at 3:26

Robi's user avatar

RobiRobi

731 silver badge7 bronze badges

В операционных системах семейства Linux для удаленного доступа между машинами широко используется протокол SSH. Его популярность обусловлена простотой, надежностью и безопасностью соединения. Подключившись по SSH к удаленному компьютеру, вы получаете возможность выполнять на нем любые команды терминала, как будто вы работате на своем компьютере, работает даже автодополение и другие вспомогательные возможности.

Иногда возникает необходимость подключиться к удаленному компьютеру Linux из Windows, но по умолчанию, там нет утилиты предназначенной для этого. Есть сторонняя программа, она называется PuTTY и вы можете установить ее отдельно. В этой статье мы рассмотрим как пользоваться PuTTY для подключения к Linux системам, а также поговорим как выполняется настройка PuTTY для удобного использования.

Сначала нужно скачать установщик программы. Для этого откройте официальный сайт и нажмите «You can download PuTTY here»:

Затем выберите установщик для вашей архитектуры, x86 или x64 и загрузите его.

На первом шаге нажмите «Next»:

Папку для установки можно оставить по умолчанию:

Компоненты тоже:

Дождитесь завершения установки:

Снимите галочку с «View README» и нажмите «Finish»:

Теперь перейдем к тому как выполняется работа в PuTTY.

Как пользоваться PuTTY

1. Интерфейс программы

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

Рассмотрим за что отвечают те или иные вкладки программы, чтобы вы ориентировались что и где искать. У нас есть четыре вкладки:

  • Session — отвечает за подключение удаленному серверу, тут мы вводим параметры подключения, порт, адрес, а также можем сохранить все настройки putty, чтобы не настраивать каждый раз заново.
  • Terminal — позволяет включать или отключать возможности терминала;
  • Window — настройка внешнего вида окна, цвет, шрифт, кодировка;
  • Connection — настройка параметров подключения, алгоритма шифрования, сжатия, ключей аутентификации, X11 и других параметров.

Каждая вкладка имеет несколько подразделов, но мы не будем сейчас их трогать, а перейдем сразу к практике и посмотрим как подключиться putty к удаленному узлу.

2. Подключение к удаленному компьютеру PuTTY

Чтобы подключиться к удаленному компьютеру по SSH перейдите на вкладку «Session», здесь, в поле «Host Name» необходимо прописать ip адрес или имя хоста, компьютера, к которому вы хотите подключиться, в поле порт — нужно указать порт, на котором запущен SSH сервер, по умолчанию используется порт 22:

Далее, нажмите кнопку «Open». После этого появится запрос на добавление ключа сервера в список доверенных ключей, нажмите «Да»:

Затем вам будет нужно ввести логин пользователя и пароль. Важно заметить, что скопировать логин или пароль у вас не получится, необходимо только вводить вручную:

Теперь авторизация прошла успешно, и вы можете выполнять нужные действия на сервере:

3. Сохранение сессии PuTTY

Чтобы не вводить каждый раз ip и порт можно сохранить эти данные в виде сессии, для этого пропишите новое имя в поле «Saved Sessions», а затем нажмите кнопку «Save»:

Теперь вы сможете загрузить сохраненную сессию, нажав кнопку «Load».

После того как будет завершена настройка putty и все параметры будут выставлены правильно вы можете сохранить настройки и не вводить их несколько раз.

4. Имя пользователя по умолчанию

Вы можете не вводить имя пользователя каждый раз, для этого перейдите на влкадку «Connection», затем «Data» и в поле «Auto-login Username» пропишите имя пользователя, например, root:

Теперь подключение putty будет выполняться от имени этого пользователя.

5. Авторизация по ключу ssh в PuTTY

Чтобы не вводить каждый раз пароль можно настроить авторизацию по ключу. В Linux такая возможность используется очень широко потому что это удобно. Первым делом необходимо создать ключ. Для этого запустите утилиту PuTTYgen и установите переключатель в положение «SSH-2 RSA» нажмите «Generate»:

Обязательно ключ должен быть SSH-2 RSA, если в главном окне нет, выберите в меню «Key». Подвигайте мышкой, чтобы создать достаточное количество энтропии:

Ключ готов, затем, с помощью кнопок «Save Public Key» и «Save Private Key» сохраните оба ключа.

Далее, откройте PuTTY, перейдите на вкладку «Connection», затем «SSH», затем «Auth»:

Здесь необходимо нажать кнопку «Browse» и добавить недавно сохраненный приватный ключ:

Далее, возвращаемся на вкладку «Session», выбираем наше сохранение и нажимаем «Save» чтобы сохранить настройки. Осталось только отправить наш открытый ключ на сервер. Для этого авторизуйтесь на нем с помощью пароля и открытый ключ вставьте ключ в конец файла /root/.ssh/authorized_keys.

Ключ можно брать прямо из окна PuTTYgen «Public key for pasting» или из файла открытого ключа:

Все, теперь можно выходить и авторизоваться снова. На этот раз подключение по ssh putty будет выполняться с помощью нашего ключа. Не забывайте сохранять настройки сессии, чтобы не выбирать ключ каждый раз. Теперь вы знаете как пользоваться программой putty, рассмотрим еще передачу файлов.

5. Передача файлов через scp в PuTTY

Не все знают, но PuTTY позволяет передавать файлы через ssh также как это делает linux с помощью утилиты scp. Нажмите Win+R, затем пропишите cmd, чтобы запустить командную строку.

Синтаксис утилиты pcsp выглядит следующим образом:

pscp опции путь_файлу имя_пользователя@хост:/путь/к/файлу/на/удаленном/хосте

Например, мы можем отправить файл из текущей папки в папку пользователя /root/:

pscp test.txt root@185.22.173.108:/root/

С помощью опции -P можно задать удаленный порт:

pscp -P 2250 test.txt root@185.22.173.108:/root/

А опция load позволяет загрузить сохраенные настройки сессии PuTTY:

pscp -load losst-2 test.txt root@185.22.173.108:/root/

Теперь вы знаете как использовать putty для передачи файлов.

Выводы

В этой статье мы рассмотрели как пользоваться PuTTY для решения задач администрирования Linux в Windows. Иногда случаются ситуации, что без ssh в windows никуда, тогда эта утилита будет просто незаменимой.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Подключение к серверу посредством SSH – один из основных методов управления *nix серверами. Довольно часто возникает необходимость загрузить файл на удаленный сервер, либо выгрузить, и других средств кроме SSH-подключения нет. К счастью, копирование файлов через защищенное соединение – одна из штатных функций этого протокола и реализуется с помощь отдельной команды scp в Linux-системах, либо с помощью pscp.exe, входящей в состав SSH-клиента Putty для операционной системы Windows.

Работаем на ОС семейства Linux

Используем следующий формат команд:

scp [модификатор] [источник] [место_назначения]

Если в качестве источника или места назначения указывается удаленный сервер, то формат параметра такой:

[пользователь]@[сервер]:[путь_к_файлу]

После запуска команды потребуется ввести пароль от указанной учетной записи удаленного сервера.

Если собрать все вместе, то скопировать локальный файл /home/user/file.tgz в домашний каталог пользователя root удаленного сервера 123.123.123.123 можно командой:

scp /home/user/file.tgz root@123.123.123.123:/root

Чтобы скачать этот же файл с удаленного сервера:

scp root@123.123.123.123:/root/file.tgz /home/user

За одну операцию можно скопировать несколько файлов, для этого необходимо указать их в качестве источника, разделив пробелом – местом назначения будет считаться последний указанный параметр. Например, загрузить файлы file1.tgz и file2.tgz из локального каталога на удаленный сервер позволит команда:

scp file1.tgz file2.tgz root@123.123.123.123:/root

Для копирования каталога потребуется задействовать модификатор команды r. Копируем локальный каталог /home/user/dir на удаленный сервер:

scp –r /home/user/dir root@123.123.123.123:/root

В тех случаях, когда SSH-сервер работает на нестандартном порту, поможет опция P. Если нужно подключиться через порт 10022:

scp –P 10022 /home/user/file.tgz root@123.123.123.123:/root

Чтобы узнать какие еще модификаторы поддерживает команда, можно просто запустить scp без параметров и прочитать краткую справку.

Работаем на ОС семейства Windows

При использовании операционной системы Windows и Putty в качестве клиента, формат команды остается тот же, меняется только название исполняемого файл и используется синтаксис указания путей к файлам и каталогам Windows при указании источника или места назначения. Запускаем командную строку (cmd.exe) или PowerShell, переходим в каталог, где расположен файл pscp.exe вводим команду:

pscp.exe C:Tempfile.tgz root@123.123.123.123:/root

В случае запуска из какой-либо другой папки понадобится указать полный путь к pscp.exe. Если в каком-либо из путей присутствуют пробелы, используются двойные кавычки — “Путь к файлу”:

“C:Program FilesPuttypscp.exe” C:Tempfile.tgz root@123.123.123.123:/root

Как и в случае с scp, запустив pscp.exe без параметров, можно увидеть краткую справку по синтаксису команды и перечень поддерживаемых модификаторов.

Запуск команд на удаленном сервере через SSH-подключение

Протокол SSH, помимо работы в интерактивном режиме, поддерживает также разовый запуск команд или скриптов на удаленном сервере.

Работаем на ОС семейства Linux

Синтаксис команды:

ssh [пользователь]@[сервер] ‘[команда]’

При запросе вводим пароль указанного пользователя и в консоли получаем вывод команды, если таковой имеется.

Например, получим информацию об установленной на удаленном сервере операционной системе:

ssh root@123.123.123.123 ‘uname -a’

Чтобы запустить несколько команд за одно подключение, можно использовать символ “;” в качестве разделителя. Проверим сетевые настройки и активные сетевые подключения на удаленном сервере:

ssh  root@123.123.123.123 ‘ifconfig; netstat -anp tcp’

В случае, если потребуется запустить на удаленном сервере локальный файла сценария, потребуется в SSH-подключении вызвать командный интерпретатор в режиме исполнения сценария (например, bash с ключом -s), и на стандартный ввод передать ему файл сценария. Выглядеть эта конструкция будет так:

ssh  root@123.123.123.123 ‘bash -s’ < /home/user/myscript.sh

В результате локальный файл /home/user/myscript.sh исполнится на удаленном сервере.

Запуск команды SSH без параметров позволит ознакомиться с краткой справкой по синтаксису и списком дополнительных модификаторов, которые позволяют расширить функциональность команды.

Работаем на ОС семейства Windows

Если мы подключаемся к удаленному серверу с компьютера, работающего на операционной системе Windows, то нам снова потребуется обратиться к терминальному клиенту Putty, в состав которого входит исполняемый файл plink.exe. Работать с этим файлом необходимо из командной строки (cmd.exe) или из PowerShell.

Для запуска команды на удаленном сервере используется следующий синтаксис:

plink.exe [сервер] -ssh -l [пользователь] “[команда]”

Проверим конфигурацию сетевых интерфейсов:

plink.exe 123.123.123.123 -ssh -l root “ifconfig”

Как и при работе с командой SSH в Linux, plink.exe позволяет использовать “;” в качестве разделителя для запуска нескольких команд:

plink.exe 123.123.123.123 -ssh -l root “ifconfig; netstat -anp tcp”

А запуск команд из локального файла можно реализовать с помощью дополнительного ключа m:

plink.exe 123.123.123.123 -ssh -l root -m “C:Tempmyscript.sh”

Запустив команду plink.exe без параметров, можно ознакомиться с краткой справкой по синтаксису и списком дополнительных модификаторов команды.

Аverage rating : 4

Оценок: 8

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

700
300

Содержание

  • Применение и возможности PuTTY
  • Установка на Windows
  • Работа с программой
  • Распространенные ошибки

PuTTy

PuTTY — программа, которая позволяет установить соединение с удаленным сервером или компьютером. Программу можно также применять для реализации следующих целей:

  • удаленного администрирования;
  • взаимодействия с VPS-серверами.
  • работы с Telnet-терминалами;
  • настройки маршрутизаторов через RS-232;

Работать рекомендуется через SSH, поскольку он обеспечивает высокий уровень безопасности соединения с другим компьютером. PuTTY поддерживает Telnet, реализующий текстовый интерфейс в терминале (только для отображения текстовой информации в режиме консоли).

Возможности программы

  • Сохранение информации и конфигурационных параметров для многократного применения.
  • Работа с SSH-ключами.
  • Поддержка разных версий SSH-протокола.
  • Встроенные клиенты SCP и SFTP, используемые для различных операций с файлами. Возможности первого ограничиваются только функцией копирования.
  • Перенаправление портов через протокол SSH.
  • Поддержка xterm, ECMA-48 и VT-102.
  • Возможность соединения по IPv6.
  • Работа с алгоритмами шифрования.
  • Аутентификация через ключ, который расположен на удаленной машине.
  • Соединение через proxy.
  • Использование порта RS-232.

Установка на Windows

  1. Программа PuTTY для Windows 10 скачивается с официального сайта.
    Инсталляция на Windows PuTTY
  2. Далее нужно перейти по ссылке, скачать пакет для архитектуры x86 или x64, а затем запустить установку.
    Инсталляция на Windows PuTTY
  3. После установки необходимо проверить программу на работоспособность, запустив исполняемый файл на Windows.
    Инсталляция на Windows PuTTY

Работа с программой

Интерфейс

Пользоваться программой PuTTY удобно, т. к. она имеет понятный интерфейс. Чтобы ее настроить, нужно знать назначение основных ее вкладок.

  •     Session позволяет задать параметры соединения, чтобы подключиться к серверу (IP-адрес, протокол и порт), а также сохранить настройки для многократного использования.
  •     Terminal: режим активации или деактивации терминала.
  •     Window: установка кодировки и изменение интерфейса.
  •     Connection отвечает за выбор шифрования, аутентификацию без ввода пароля и т. д.

Соединение с удаленным сервером

Принцип подключения не зависит от операционной системы. Это могут быть разные версии Windows (7, 10) или популярные дистрибутивы на основе Linux — Ubuntu, CentOS, Debian.

Подключиться по SSH через PuTTY просто. Для этого нужно следовать приведенной ниже инструкции.

  1. Ввести IP-адрес или имя хоста, к которому необходимо подключиться.
  2. Указать порт (по умолчанию везде 22).
  3. Выбрать тип соединения SSH.
  4. Ввести название подключения и сохранить его, нажав кнопку «Save».
  5. Активировать соединение, нажав на «Open».
    Соединение с удаленным сервером PuTTY
  6. Указать данные для авторизации (логин и пароль).

После этого работа с терминалом осуществляется, как на локальном компьютере. Чтобы узнать информацию о версии Ubuntu, нужно ввести команду:

sudo lsb_release -a.

Соединение с удаленным сервером PuTTY

Для удобства можно создать жесткую ссылку (ярлык) на программу для быстрого запуска.

Использование SSH-ключей

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

Для примера, продемонстрируем ниже, как подключиться через PuTTY, установленного в Windows 10, при помощи SSH-ключа к серверу на Ubuntu.

Шаг №1

Для начала, нужно выполнить ряд действий на компьютере с ОС Windows.

  1. Установить  программу для генерации ключа «Putty Key Generator» и запустить ее.
  2. Задать параметр «RSA» и активировать процесс кнопкой «Generate». Нужно постоянно вводить указателем мыши в зоне окна выполнения операции для успешной генерации.
    Использование SSH-ключей PuTTY
  3. Сохранить private key, для чего скопировать текст из консоли в документ. Предварительно нужно указать тип файла «.ppk».
    Использование SSH-ключей PuTTY
  4. Затем сохраняем public key. Для этого необходимо скопировать и вставить текст из буфера обмена в любой пустой текстовый файл.
    Использование SSH-ключей PuTTY
  5. Свернуть программу.

Шаг №2

Далее необходимо перенести SSH-ключ на сервер Ubuntu, выполнив перечисленные ниже действия.

  1. Запустить программу PuTTY.
  2. Подключиться к серверу, используя его параметры для доступа (хост, порт и SSH-протокол).
  3. Командой «mkdir .ssh» создаем папку «.ssh». Затем командой «ll» проверяем наличие папки.
    Использование SSH-ключей PuTTY
  4. Прописываем права доступа для папки .ssh только для владельца, командой «сhmod 700 .ssh/».
    Использование SSH-ключей PuTTY
  5. При помощи команды «cd .ssh» переходим в системную папку «./ssh».
    Использование SSH-ключей PuTTY
  6. Создаем файл «authorized_keys», используя редактор nano, командой:

    touch authorized_keys

    Использование SSH-ключей PuTTY

  7. Прописываем права доступа для файла «authorized_keys», только для владельца, командой:

    сhmod 600 authorized_keys

    Использование SSH-ключей PuTTY

  8. Редактируем файл с помощью команды:

    cat >> authorized_keys << EOF»
  9. Добавляем ваш public key и заканчиваем редактирование файла командой «EOF».
    Использование SSH-ключей PuTTY

Шаг №3

Возвращаемся к программе PuTTY на Windows 10.

  1. Переходим в программу.
  2. Добавляем данные для подключения.
  3. Переходим во вкладку «Connection SSH Auth». Выбираем для аутентификации сохраненный файл «.ppk».
    Использование SSH-ключей PuTTY
  4. Активируем соединение при помощи нажатия «Open».
    Использование SSH-ключей

Работа с файлами

Программа позволяет делать операции с файлами. Чтобы закачать файл на сервер, находящийся под управлением Linux Ubuntu (с компьютера на ОС Windows), нужно действовать по приведенной ниже инструкции.

  1. Сохранить тестовый файл «mydoc.txt» на диске C: вместе с исполняемым файлом для безопасного копирования — pscp.exe.
  2. Открыть командную строку Windows: «Win+R → cmd → Enter».
  3. Зайти в папку с программой pscp.exe, для чего ввести команду: «cd /d c:Puttypscp.exe»*, где «c:Putty» — путь к файлу pscp.exe.
    * Путь к файлу «c:Puttypscp.exe» приведен в качестве примера.
  4. Далее можно приступать непосредственно к работе с файлом. Например, передать файл «mydoc.txt» на сервер «192.241.7.16»* со стандартным портом и пользователем Ubuntu74 в папку «root» можно командой:
    * IP-адрес «192.241.7.16» приведен только в качестве примера.

    pscp.exe mydoc.txt Ubuntu74@192.241.7.16:/root/

    Если для соединения используется нестандартный порт (например, 25), то команда примет вид:

    pscp.exe -P 25 mydoc.txt Ubuntu74@192.241.7.16:/root/
  5. Ввести пароль для Ubuntu74.

Скачать файл через PuTTY с сервера «192.241.7.16» в текущую папку можно с помощью команды:

pscp.exe Ubuntu@192.241.7.16:/root/mydoc.txt

Чтобы объединить файлы, нужно их загрузить на удаленную машину, а затем выполнить команду «sudo cat mydoc1.txt mydoc2.txt > mydoc.txt».

Распространенные ошибки

Проблемы с аутентификацией

PuTTY выдает при подключении сообщение: «Access denied». Это указывает на отказ в доступе, причиной которого являются ошибки при вводе логина или пароля.

Распространенные ошибки PuTTY

Если соединение с удаленным сервером происходит при помощи SSH-ключа, то PuTTY выдаст в диалоговом окне такие строки:

Permission denied (publickey).
PuTTY Error output

Причины ошибки

Ошибка «Access denied» связана с некорректной аутентификацией на основе ключей. Вызвать ее может отсутствие соответствующих прав доступа к файлам или невозможность подтвердить права владельца.

Как решить

  1. Проверить параметры аутентификации (логин и пароль).
  2. Проверить наличие и правильность имени SSH-ключа в PuTTY.
  3. Выполнить проверку содержимого кода SSH-ключа в «authorized_keys».

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

  1.   Перейти в папку «/etc/ssh/», а затем открыть файл «sshd_config».
  2. Далее необходимо найти строки «PasswordAuthentication: YES» и «PermiRootLogin: NO». Значения переменных требуется поменять на противоположные значения, т. е. «PasswordAuthentication: NO» и «PermiRootLogin: YES».
  3. После сохранения изменений необходимо перезапустить PuTTY и соединиться с удаленным сервером.

Подробнее о том, как создать удаленное соединение для разных дистрибутивов Linux, можно узнать из отдельных руководств:

  • Для Ubuntu;
  • Для CentOS;
  • Для Debian.

Ошибка подключения

Если программа PuTTY выдает ошибку «Unable to open connection to mysite.ru Host does not exist»*, то это свидетельствует о том, что ссылка на SSH-хост не соответствует сетевому адресу.
Домен mysite.ru приведён для примера.

При истекшем времени подключения или отказе в соединении PuTTY выдаст сообщения «Network error: Connection timed out» и «Network error: Connection refused» соответственно.

Причины ошибки

  • Отсутствие сетевого подключения. 
  • Неверно указан IP-адрес. 
  • Порт не поддерживается или его значение задано неверно. 
  • Блокировка исходящего подключения антивирусом или брандмауэром.

Как решить

Чтобы исправить ошибку, рекомендуется действовать по приведенной ниже инструкции.

  1. Проверить IP-адрес хоста.
  2. Убедиться, что порт не блокируется какой-либо программой. При необходимости внести его в список исключений.
  3. Проверить конфигурацию PuTTY во вкладках «Session» и «Connection».
  4. В список исключений антивируса или брандмауэра необходимо внести стандартный порт 22.

Логотип программы для удаленного доступа Putty      Для удаленной работы с серверами Linux, FreeBSD, *BSD удобно пользоватся программой Putty.

      Putty — это бесплатная программа — клиент для подключения к серверу в основном по SSH протоколу, но также можно использовать и telnet протокол, который не желательно использовать из-за его небезопасности, так как все по telnet протоколу передается в незашифрованном виде.

      Через протокол SSH вы узнаете как пробросить порт на роутер, модем либо другое оборудование за сервером с установленным сервером SSH, узнаете как можно скачать либо закачать файл на сервер либо с сервера. Вообщем Putty очень полезная и удобная маленькая программа с большими возможностями.

      Программу Putty также можно использовать и для подключения к устройствам используя последовательный порт, например настроить 3G модем Huawei через Putty.
Скачиваем программу Putty и PSCP на странице:  скачать Putty и PSCP с официального сайта

При открытии выше приведенной ссылки в браузере, Вам откроется окно:

Открываем официальный сайт и скачиваем программы Putty и Pscp

      На скриншоте выше обведено две ссылки которые нужно скачать на диск С: в папку putty, которую необходимо предварительно создать. Туда скачиваем две программы putty.exe и pscp.exe. На приведенном ниже скриншоте Вы можете видеть скачанные на моем компьютере программы в папке putty на диске C:

Скачиваем программы Putty и Pscp на диск С в папку putty

      Запускаем файл программы putty.exe нажав дважды на файле мышкой, откроется окно, в котором я добавляю сервер Linux который находится в моей сети и имеет айпи адрес 192.168.2.1 со стандартным портом SSH — 22, итого:

  • Host Name: 192.168.2.1
  • Port: 22
  • Saved Session: 192.168.2.1 (тут можно написать любое имя, например сервер Васи Пупкина)

Окно программы Putty - добавляем server Linux

      Далее обязательно переходим во вкладку Window — Translation и в выпадающем списке выбираем кодировку UTF-8(либо выбираем ту кодировку с которой настроен Ваш удаленный сервер, в большинстве случаев это UTF-8), если этого не сделать, тогда у Вас после подключения к серверу используя Putty все руские слова будут отображатся нечитаемыми символами:

Изменяем кодировку текущего сервера на UTF-8

      После изменения кодировки переходим в главное окно Session и проверив, что у Вас заполнено поле Saved Session нажимаем кнопку Save. Теперь у Вас в главном окне появилась новая запись 192.168.2.1 (либо сервер Васи Пупкина). После закрытия программы Putty у Вас добавленная запись останется и для подключения к удаленному серверу по SSH Вам достаточно нажать дважды на сохраненную запись 192.168.2.1:

Сохраняем добавленный сервер в Putty

      При первом подключении к серверу по SSH протоколу, Вам будет предложено согласится на запись ключа удаленного сервер в кеш программы Putty, Вы соглашаетесь на это нажав кнопку Да и Вам откроется окно ввода логина и пароля:

Подключаемся и соглашаемся на вопрос программы при добавлении ключа сервера

      В открывшемся окне вводим имя пользователя например root и нажимаем Enter, Вам будет предложено ввести пароль пользователя root, сам вводимый пароль не будет виден, просто когда введете пароль нажмите Enter и если Вы правильно ввели логин:пароль Вы окажетесь на удаленно Linux сервере:

Подключаемся к удаленному серверу Linux по SSH используя программу Putty

Ниже приведен скриншот в котором я вошел на сервер Linux по SSH bcgjmpez программу удаленного доступа Putty:

Подключились к удаленному серверу Linux по SSH используя программу Putty

      В выше приведенной инструкции Вы узнали как и откуда скачать программу Putty, запустили скачанную программу Putty, добавили удаленный сервер в и сохранили его настройки включая кодировку сервера в параметры программы Putty, а также подключились к удаленному Linux серверу.

      Далее предположим, что у нас есть сервер либо роутер с установленным Linux и открытым  портом SSH. Нам небходимо подключится к модему через который данный сервер выходит в интернет. Сам модем с интернета не доступен. В данной ситуации нам очень пригодится программа удаленного доступа Putty, с помощью которой мы пробросим порт с нашего компьютера через удаленный сервер на роутер либо модем.

      Дано:

  • IP Удаленного сервера — 192.168.2.1
  • IP роутера либо модема — 192.168.1.1
  • Пробрасываемый порт — 82

      Нам необходимо в браузере открыть настройки роутера либо модема, внести изменения и сохранить. Пробрасывать будем 82 порт, так как он при стандартных настройках как сервера так и декстопа не задействован.

      Так как мы будем пробрасывать 82 порт на роутер на том же сервере к которому мы ранее уже подключались, на необходимо во вкладке Session выделить мышкой добавленный ранее сервер с именем 192.168.2.1 и нажать кнопку Load, после этого заполнятся поля Host Name, Port, Saved Session:

Добавляем туннель для проброса 82 порта на роутер, модем за сервером

Нам необходимо перейти во вкладку Connection — SSH — Tunnels и заполнить поля:

Source port: 82

Destination: 192.168.1.1:80

где порт 82 — это порт который откроется на Вашем компьютере (декстопе), а 192.168.1.1:80  это айпи роутера и порт на который нам необходимо пробросить порт. Все что открывается по ссылке http — это 80 порт, https — это 443 порт. Аналогично можно пробросить и 21 порт это FTP, почту, SSH, Radmin, RDP и так далее. После заполнения полей нажимаем кнопку Add для добавления тунеля в текущие настройки:

Добавляем туннель для проброса 82 порта на роутер, модем за сервером

      В окне ниже мы добавили туннель на роутер с 82 порта на айпи роутера 192.168.1.1 и WEB порт 80:

Добавили туннель для проброса 82 порта на роутер, модем за сервером

      После добавления тунеля нам необходимо сохранить данные настройки под другим именем, для этого переходим во вкладку Session и в поле Saved Session написать имя соединения с настроенным тунелем: 192.168.2.1_82-to-192.168.1.1 и нажимаем кнопку Save, в окне ниже появится новое имя 192.168.2.1_82-to-192.168.1.1 дважды нажав на которое мышкой, мы получим приглашение ввести логин:пароль, введя которые мы зайдем на удаленный сервер.

Сохраняем настройки с туннелем на роутер, модем под отдельным именем

      После того как мы зашли на удаленный сервер с профиля 192.168.2.1_82-to-192.168.1.1, в котором у нас настроен проброс порта 82 на 80 порт роутера по айпи 192.168.1.1, нам для подключения к роутеру либо модему необходимо в браузере прописать адрес http://localhost:82 и у Вас откроется окно ввода логина и пароля от роутера:

Заходим на роутер, модем через 82 проброшенный порт в Putty

      После входа на роутер Вам останется только внести необходимые изменения в настройки роутера или модема. Для того, чтобы прекратить работу проброса порта, Вам нужно просто закрыть программу удаленного доступа Putty.

      Как настроить проброс порта через Putty Вы узнали, потому переходим к третьему разделу копирования файлов по SSH.

      Копирование файлов через SSH используя программу для удаленного доступа Putty.

      Для копирования файла на удаленный сервер,  я в папке pytty на диске C:  заархивировал программу putty.exe, и в заархивированном виде файл имеет имя putty.zip скриншот:

Заархивированный файл putty.zip, который мы скопируем на удаленный сервер по SSH

Для копирования файла putty.zip нам необбходимо открыть командную строку Windows, для этого нажимаем кнопку Пуск — Выполнить и в появившемся окне вводим команду cmd и нажать Ok:

Запускаем командную строку в Windows

      После запуска командной строки выполнив команду cmd нам откроется окно:

Открыта командная строка Windows

      После открытия командной строки, нам необходимо перейти в папку, где находится программа pscp.exe и копируемый файл putty.zip, для этого нам необходимо выполнить в командной строке команду:

cd c:putty

После входа в папку putty на диске C: мы можем проверить содержимое папки выполнив команду:

dir

На скриншоте ниже это все видно:

Переходим в папку Putty на диске C:

      И теперь нам для того, чтобы закачать файл putty.exe на удаленный сервер  под пользователем root в папку /root нам необходимо выполнить команду:

      Если у Вас SSH сервер висит на стандартном 22 порту, выполняете команду:

pscp.exe putty.zip [email protected]:/root/

      Если же у Вас SSH сервер висит на нестандартном порту, например 222, тогда выполняете команду:

pscp.exe -P 222 putty.zip [email protected]:/root/

Копируем файл по ssh на удаленный сервер

      В команде выше мы сказали программе pscp.exe закачать файл putty.zip находящийся в текущей директории на удаленный сервер под пользователем root с IP адресом 192.168.2.1 в папку /root. После выполненной команды, Вам будет предложено ввести пароль пользователя root

      Для того, чтобы скопировать файл putty.zip с удаленного сервера в текущую папку, SSH сервер на стандартном 22 порту, нам необходимо выполнить команду:

pscp.exe [email protected]:/root/putty.zip .

Для того, чтобы скопировать файл putty.zip с удаленного сервера в текущую папку, SSH сервер на нестандартном 222 порту, нам необходимо выполнить команду:

pscp.exe -P 222 [email protected]:/root/putty.zip .

Копируем файл по ssh с удаленного сервера в текущую папку

      В команде выше мы сказали программе pscp.exe cкачать файл putty.zip находящийся в директории /root на удаленном сервере под пользователем root с IP адресом 192.168.2.1 в текущую папку (в папку в которой мы находимся)

      Вот и закончена инструкция по работе с программой Putty. Прочитав данную инструкцию Вы узнали (если не знали) как установить скачать, запустить, настроить и использовать программу для удаленного доступа Putty. Вы узнали как пробросили порт через Putty на роутер, модем либо другой сервер находящийся за текущим. Вы узнали как можно скачать с сервера файл на свой компьютер, либо наоборот закачать нужный файл со своего компьютера на удаленный сервер используя SSH протокол.

      С Вами был Лазаренко Сергей, буду очень рад если данная инструкция будет Вам полезна.

      Маленький перерыв,  отдохнем 3 минутки просмотрев красивый ролик:

  • Копирование файлов по SSH на Linux
  • Как передать и скачать файлы по SSH на Windows

В статье мы расскажем, как копировать файлы в Windows и Linux-системах, и покажем основные команды, с помощью которых происходит передача файлов по SSH. 

В Linux и Windows-системах используют разные инструменты для копирования файлов по SSH.

В Linux для копирования данных по протоколу SSH используется утилита scp (Secure CoPy). Она входит в состав OpenSSH, поэтому для работы с утилитой устанавливать дополнительное ПО не нужно. 

В Windows для загрузки файлов по SSH используется утилита pscp.exe. Её функционал схож с scp. Утилита входит в состав программы Putty (SSH-клиент для Windows). Putty не входит в стандартный набор Windows-программ, поэтому её нужно будет скачать с официального сайта. 

Обратите внимание! Если файл, который вы хотите скопировать, уже существует на целевом хосте, при копировании он будет перезаписан.

Копирование файлов по SSH на Linux

Как скачать файл с сервера через SSH? На Linux копирование файлов по SSH делается с помощью команды scp. Команда может копировать файлы как с локального компьютера на удалённый сервер, так и с удалённого сервера на локальный компьютер.

Обратите внимание! Для подключения к удалённому серверу вам понадобится логин и пароль. 

В общем виде команда выглядит так:

scp [опция] [источник] [получатель]

Как скопировать файл по SSH с локальной машины на удалённый сервер

Как загрузить файл на сервер по SSH? Для этой операции используется команда вида: 

scp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]

Например, команда может выглядеть так:

scp /home/test.txt root@123.123.123.123:/directory

То есть файл test.txt будет скопирован на хост 123.123.123.123 в директорию «/directory».

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

При подключённом SSH скачать файл на локальный компьютер с удалённого сервера можно с помощью команды:

scp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]

Пример команды: 

scp root@123.123.123.123:/home/test.txt /directory

То есть файл test.txt будет загружен с сервера 123.123.123.123 на локальный компьютер в папку “/directory”.

Как скачать папку со всеми файлами и подпапками

При необходимости можно скачать папку со всеми файлами и подпапками, для этого используйте ключ -r:

scp -r [источник] [получатель]

Как подключиться к серверу по нестандартному порту

Если не указывать порт, команда подключается к серверу по стандартному 22 порту. Но бывает, что для подключения по SSH нужно указать нестандартный порт. Чтобы это сделать, введите команду с ключём -P:

scp -P [источник] [получатель]

Например, получится такая команда:

scp -P 12345 /home/test.txt root@123.123.123.123:/directory

Указанная команда подключается по порту 12345 к серверу 123.123.123.123 и копирует на него файл «text.txt» в директорию «/directory». 

Как передать и скачать файлы по SSH на Windows

Скопировать файл по SSH на сервер можно командой:

pscp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]

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

pscp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]

Увидеть список папок и файлов на сервере можно через pscp.exe. Для этого введите:

pscp -ls [имя пользователя]@[имя сервера/ip-адрес]:[путь]

Если в пути или в названии файла есть пробелы, используйте кавычки:

pscp “C:files or docsfile name” root@123.123.123.123:/home

Чтобы передавать файлы из Linux в Windows с использованием SSH, выберите одну из следующих опций:

PuTTY

PuTTY подходит для различных инструментов командной строки, чтобы работать с SSH сервером. Загрузите его по ссылке http://www.chiark.greenend.org.uk/~sgtatham/putty.html.

WinSCP

WinSCP очень похож на PuTTY, но включает графический интерфейс пользователя. Выберите для подходящий интерфейс, например, в стиле Explorer или Norton Commander. Загрузите его по ссылке http://winscp.net.

Чтобы копировать файлы из Windows в Linux с помощью PuTTY, проделайте следующее (на Windows машине):

  1. Запустите PSCP.

  2. Введите имя хоста вашего SSH сервера.

  3. Введите имя пользователя и пароль для SSH сервера.

Чтобы подключится из Windows к Linux с помощью WinSCP, проделайте следующее (на Windows машине):

  1. Запустите WinSCP.

  2. Введите имя хоста вашего SSH сервера и имя пользователя.

  3. Нажмите и подтвердите последующее предупреждение.

  4. Перетащите любые файлы или каталоги из окна WinSCP.

[Note] Отпечаток ключа SSH

В PuTTY и WinSCP вы должны принять отпечаток ключа SSH, когда вы входите в первый раз.

При работе с Linux серверами не всегда есть возможность закачать файл по FTP или Samba. Рассмотрим примеры как можно обмениваться файлами через SSH.

Обмен файлами между операционными системами на базе Linux:

  • Скачиваем файл на локальную машину:
$ scp [email protected]_ADDRESS:/home/file.tar.gz /home

IP_ADDRESS — IP адрес или доменное имя удаленного сервера
/home/file.tar.gz — файл который скачиваем к себе на компьютер
/home — путь куда скачиваем файл

  • Закачиваем файл на удаленную машину:
$ scp /home/file.tar.gz [email protected]_ADDRESS:/home

IP_ADDRESS — IP адрес или доменное имя удаленного сервера
/home/file.tar.gz — файл который закачиваем на удаленный компьютер
/home — путь куда скачиваем файл

Обмен файлами между Windows и Linux:

Для Windows в качестве клиента SSH будем использовать Putty. Скачиваем ее к себе на компьютер, запускаем командную строку (CMD) и переходим в директорию куда мы скачали Putty.

  • Скачиваем файл на локальную машину:
pscp.exe [email protected]_ADDRESS:/home/file.tar.gz "c:share"

IP_ADDRESS — IP адрес или доменное имя удаленного сервера
/home/file.tar.gz — файл который скачиваем к себе на компьютер
«c:share» — путь куда скачиваем файл (не забываем ставить кавычки)

  • Закачиваем файл на удаленную машину:
pscp.exe "c:sharefile.tar.gz" [email protected]_ADDRESS:/home

IP_ADDRESS — IP адрес или доменное имя удаленного сервера
«c:sharefile.tar.gz» — файл который закачиваем на удаленный компьютер
/home — путь куда скачиваем файл

Понравилась статья? Поделить с друзьями:
  • Как скопировать файл с windows на centos
  • Как скопировать файл от имени администратора в windows 7
  • Как скопировать файл в папку system32 windows 10
  • Как скопировать файл в буфер обмена на windows 10
  • Как скопировать учетную запись windows 10