Sftp передать файл linux

How to transfer a file using sftp in UNIX

I want to transfer a .png file from a directory on my computer to a directory on a remote server. I have to use SFTP to secure the file and transfer mode. And I already have a UNIX script (.ksh) file to copy the files in the normal mode. How do I implement the transfer in SFTP mode?

2 Answers 2

Use sftp instead of whatever command you are using in your .ksh script. See sftp man for reference.

You may also want to look at scp secure copy — scp man.

EDIT

sftp is mostly for interactive operations, you need to specify host you want to connect to:

you will be prompted for username and passsword, and the interactive session will begin..

Although it can be used in scripts, the scp is much more easy to use:

scp /path/to/localfile user@host:/path/to/dest 

you will be prompted for password..

Edit 2

Both scp and sftp use ssh as underlying protocol, see this and this

The best way to setup them to run from scripts is to setup passwordless authentication using keys. See this and this. I use this extensively on my servers.. After you setup keys, you can run

scp -i private-key-file /path/to/local/file user@host:/path/to/remote sftp -oIdentityFile=private-key-file -b batch-file user@host 

If you want to authenticate with password, you may try the expect package. The simplest script may look like this:

#!/usr/bin/expect spawn sftp -b batch-file user@host expect "*?assword:*" send "pasword\n" interact 

Send commands through sftp on one line:

Make a file and save it as my_batch_file:

Run this to execute your batch file:

eric@dev /home/el $ sftp root@10.30.25.15 < my_batch_file Connecting to 10.30.25.15. Password: sftp>cd /root sftp> get blah.txt Fetching /root/blah.txt to blah.txt sftp> bye 

The file is transferred

That moved the blah.txt from remote computer to local computer.

If you don’t want to specify a password, do this:

Or if you want to do it the hacky insecure way, use bash and expect:

#!/bin/bash expect -c " spawn sftp username@your_host expect \"Password\" send \"your_password_here\r\" interact " 

You may need to install expect, change the wording of ‘Password’ to lowercase ‘p’ to match what your prompt receives. The problems here is that it exposes your password in plain text in the file as well as in the command history. Which nearly defeats the purpose of having a password in the first place.

Читайте также:  Открыть файл nrg linux

Источник

10 примеров команд sFTP для передачи файлов на удаленный Linux

Протокол передачи файлов (FTP) был широко используемым протоколом для удаленной передачи файлов или данных в незашифрованном формате, который не является безопасным способом связи.

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

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

[Вам также может понравиться: Лучшие FTP-клиенты командной строки для Linux]

SFTP (Протокол защищенной передачи файлов) по умолчанию использует протокол SSH на стандартном порту 22 для установления безопасного соединения. . SFTP интегрирован во многие инструменты с графическим интерфейсом (FileZilla, WinSCP, FireFTP, и т. д.).

Предупреждения безопасности. Не открывайте порт SSH (Secure SHell) глобально, так как это быть нарушением безопасности. Вы можете открыть только для определенного IP-адреса, с которого вы собираетесь передавать или управлять файлами в удаленной системе или наоборот.

  • Как защитить и укрепить сервер OpenSSH
  • Как изменить порт SSH в Linux
  • Как синхронизировать файлы с помощью Rsync с нестандартным портом SSH
  • 5 рекомендаций по безопасности и защите SSH-сервера
  • 10 примеров команд Wget в Linux

В этой статье вы найдете 10 примеров команд sftp для использования через интерактивный интерфейс командной строки в терминале Linux.

1. Как подключиться к SFTP

По умолчанию для аутентификации и установки SFTP-соединения используется тот же протокол SSH. Чтобы начать сеанс SFTP, введите имя пользователя и имя удаленного хоста или IP-адрес в командной строке. После успешной аутентификации вы увидите оболочку с приглашением sftp>.

[ Connecting to 27.48.137.6. 's password: sftp>

2. Получение помощи

Когда вы окажетесь в приглашении sftp, проверьте доступные команды, введя ‘?’ или ‘help’ в командной строке.

sftp> ? Available commands: cd path Change remote directory to 'path' lcd path Change local directory to 'path' chgrp grp path Change group of file 'path' to 'grp' chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' help Display this help text get remote-path [local-path] Download file lls [ls-options [path]] Display local directory listing ln oldpath newpath Symlink remote file lmkdir path Create local directory lpwd Print local working directory ls [path] Display remote directory listing lumask umask Set local umask to 'umask' mkdir path Create remote directory put local-path [remote-path] Upload file pwd Display remote working directory exit Quit sftp quit Quit sftp rename oldpath newpath Rename remote file rmdir path Remove remote directory rm path Delete remote file symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for help

3. Проверьте текущий рабочий каталог

Команда ‘lpwd’ используется для проверки текущего рабочего каталога Local, тогда как команда pwd используется для проверки рабочего каталога Remote.

sftp> lpwd Local working directory: / sftp> pwd Remote working directory: /tecmint/
  • lpwd — распечатать текущий каталог в вашей системе
  • pwd — распечатать текущий каталог на ftp-сервере
Читайте также:  Команда версия ядра линукс

4. Список файлов с sFTP

Список файлов и каталогов как на локальном, так и на удаленном системном ftp-сервере.

На удалении
На местном

5. Загрузить файл с помощью sFTP

Поместите один или несколько файлов на ftp-сервер удаленной системы.

sftp> put local.profile Uploading local.profile to /tecmint/local.profile

6. Загрузить несколько файлов с помощью sFTP

Размещение нескольких файлов на ftp-сервере удаленной системы.

6. Загрузка файлов с помощью sFTP

Получение одного или нескольких файлов в локальной системе.

sftp> get SettlementReport_1-10th.xls Fetching /tecmint/SettlementReport_1-10th.xls to SettlementReport_1-10th.xls

Получить несколько файлов в локальной системе.

Примечание: Как мы видим, по умолчанию с помощью команды get скачивается файл с таким же именем в локальной системе. Мы можем скачать удаленные файлы с другим именем, указав имя в конце. (Это применимо только при загрузке одного файла).

7. Переключение каталогов в sFTP

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

На удалении
На местном

8. Создавайте каталоги с помощью sFTP

Создание новых каталогов в локальных и удаленных местах.

9. Удалить каталоги с помощью sFTP

Удалить каталог или файл в удаленной системе.

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

10. Выйдите из оболочки sFTP

Команда «!» помещает нас в локальную оболочку, откуда мы можем выполнять команды Linux. Введите команду «exit», где мы увидим возврат приглашения sftp>.

sftp> ! [ ~]# exit Shell exited with status 1 sftp>

Заключение

SFTP — это очень полезный инструмент для администрирования серверов и передачи файлов между ними (локально и удаленно). Мы надеемся, что эти уроки помогут вам в некоторой степени понять, как использовать SFTP.

Источник

15 примеров SFTP команд для доступа к серверу

15 примеров SFTP команд для доступа к серверу

SFTP или Secure File Transfer Protocol — это безопасная утилита для удаленной передачи файлов, основанная на протоколе передачи файлов (FTP).

Читайте также:  Аналоги microsoft office linux

Трафик FTP не зашифрован и небезопасен, поэтому его заменили на SFTP.

SFTP работает по протоколу SSH по умолчанию на TCP-порту 22 и предлагает тот же набор возможностей безопасности и шифрования, что и SSH. SSH, работающий как часть сервера OpenSSH в системах Linux, по умолчанию поддерживает основные функции протокола SFTP, хотя доступно отдельное специальное программное обеспечение, vsftpd которое можно настроить для получения дополнительных функций и настроек.

В этой статье мы рассмотрим использование SFTP из командной строки. Я буду использовать систему Ubuntu, хотя перечисленные здесь команды будут работать в любой системе Linux с sftp клиентом.

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

1. Копирование файлов

SFTP можно использоваться в качестве замены команды SCP (Secure Copy) в некоторых поддерживаемых случаях использования. Один из таких случаев — использование SCP для одновременной отправки или получения файлов с удаленного сервера.

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

А для скачивания из сервера вот так:

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

Ниже приведена демонстрация загрузки файлов с использованием sftp в качестве однострочного файла:

$ sftp ftpuser@192.168.1.231:/home/ftpuser/remote_test_dir put /home/itgap/new_file Uploading /home/user/new_file to /home/ftpuser/remote_test_dir/new_file /home/itgap/new_file 100% 9 7.2KB/s 00:00 $

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

Вот демонстрация загрузки файла в одну строку с помощью sftp:

$ sftp ftpuser@192.168.1.231:/home/ftpuser/new_file1 /home/itgap/new_local_dir ftpuser@192.168.1.231's password: Connected to 192.168.1.231. Fetching /home/ftpuser/new_file1 to /home/itgap/new_local_dir/new_file1 /home/ftpuser/new_file1 100% 12 3.6KB/s 00:00 $

2. Подключение к SFTP серверу

Чтобы инициировать SFTP-соединение, используйте sftp команду с именем пользователя и именем или IP-адресом удаленного хоста. Для этого должен быть открыт TCP-порт 22 по умолчанию, иначе явно укажите порт с помощью параметра -oPort .

Я подключаюсь к серверу SFTP с IP 192.168.1.231 . При первом подключении к серверу SFTP вам будет предложено подтвердить отпечаток сервера, например SSH. После подтверждения нажатием yes соединение продолжается и запрашивает пароль пользователя.

$ sftp ftpuser@192.168.1.231 The authenticity of host '192.168.1.231 (192.168.1.231)' can't be established. ECDSA key fingerprint is SHA256:k90E28Pfnjoiq1svFw18dA2mazweoCmR5Hqi8SH0mj0. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.1.231' (ECDSA) to the list of known hosts. ftpuser@192.168.1.231's password: Connected to 192.168.1.231. sftp>

3. Проверить версию SFTP

Вы можете проверить версию SFTP, используя команду version в командной строке sftp.

sftp> version SFTP protocol version 3 sftp>

4. Получить справку по SFTP

Чтобы получить справку о доступных командах и синтаксисе для SFTP, используйте параметры ? или help.

Источник

Оцените статью
Adblock
detector