Linux sftp по ключу

Как использовать команду SFTP для передачи файлов Linux

How to Use Linux SFTP Command to Transfer Files

В этом руководстве мы покажем Вам, как использовать команду Linux sftp .

SFTP (SSH File Transfer Protocol) — это защищенный файловый протокол, используемый для доступа, управления и передачи файлов по зашифрованному транспортному протоколу SSH.

По сравнению с традиционным протоколом FTP , SFTP предлагает все функции FTP, и его проще настраивать.

В отличие от того scp command , который разрешает только передачу файлов, sftp команда позволяет выполнять ряд операций с удаленными файлами и возобновлять передачу файлов.

Прежде чем вы начнете

Чтобы иметь возможность передавать и управлять файлами через SFTP, вы должны иметь разрешение на запись в удаленной системе.

При передаче больших файлов рекомендуется запускать команду sftp внутри сеанса экрана или tmux .

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

Установление SFTP-соединения

SFTP работает по модели клиент-сервер. Это подсистема SSH и поддерживает все механизмы аутентификации SSH.

Хотя традиционная аутентификация по паролю настроена по умолчанию и более проста в использовании, если вы регулярно подключаетесь к своему серверу через SSH / SFTP, рекомендуется создать ключи SSH и настроить логин SFTP без пароля .

Чтобы открыть SFTP-соединение с удаленной системой, используйте sftp команду, за которой следует имя пользователя удаленного сервера и IP-адрес или имя домена:

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

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

Если удаленный сервер SSH не прослушивает порт по умолчанию 22, используйте -oPort параметр, чтобы указать альтернативный порт:

Команды SFTP

Большинство команд SFTP похожи или идентичны командам, которые вы используете в командной строке Linux.

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

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

Для просмотра списка файлов и каталогов используйте ls команду:

Чтобы перейти в другой каталог, используйте cd команду. Например, чтобы перейти в /tmp каталог, вы должны набрать:

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

sftp Оболочка также предоставляет команды для местной навигации, информации и управления файлами. Локальные команды начинаются с буквы l .

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

Передача файлов с SFTP

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

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

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

Загрузка файлов с помощью команды SFTP

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

Читайте также:  Браузер для консоли linux

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

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

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

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

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

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

Синтаксис reget такой же, как и синтаксис get :

Загрузка файлов с помощью команды SFTP

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

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

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

При работе с put вами можно использовать те же параметры, которые доступны с помощью get команды.

Чтобы загрузить локальный каталог, вы должны набрать:

Чтобы возобновить прерванную загрузку:

Файловые манипуляции с SFTP

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

SFTP позволяет выполнять некоторые основные команды для работы с файлами. Ниже приведены некоторые примеры использования оболочки SFTP:

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

Создайте новый каталог на удаленном сервере:

Переименуйте файл на удаленном сервере:

Удалить файл на удаленном сервере:

Удалить каталог на удаленном сервере:

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

Измените владельца файла в удаленной системе:

Вы должны указать идентификатор пользователя к chown и chgrp командам.

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

По завершении работы закройте соединение, набрав bye или quit .

Вывод

В этом руководстве мы показали, как использовать sftp команду для загрузки и выгрузки файлов на удаленный SFTP-сервер.

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

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

Источник

Работа с SSH и SFTP

SSH — защищенный сетевой протокол. Он позволяет установить соединение по зашифрованному туннелю и управлять удаленным сервером с помощью команд.

Для соединения с сервером используйте:

  • логин аккаунта;
  • пароль для входа в Панель управления;
  • IP-адрес сервера, где размещен аккаунт (указан в Панели управления, раздел «Сайты» → «IP-адреса» ), или доменное имя сайта.

Способ подключения зависит от установленной на устройстве операционной системы.

PuTTY для Windows

Для соединения по SSH из ОС Windows установите SSH-клиент PuTTY. Он распространяется бесплатно. Скачайте программу с официального сайта и запустите ее.

В списке категорий выберите пункт «Session», в графе «Host name (or IP adress)» введите IP-адрес сервера, где расположен аккаунт, или доменное имя сайта. В блоке «Connection type» отметьте «SSH». Нажмите «Open».

Нажмите «Да» в окне с предупреждением: сервер будет добавлен в список доверенных хостов.

В окне консоли введите логин вашего аккаунта, нажмите «Enter» и укажите пароль для входа в Панель управления. В целях безопасности пароль при вводе не отображается.

Если пароль введен верно, вы увидите следующее:

Терминал в Linux и Mac OS

Подключиться по SSH из операционных систем Mac OS или Linux можно с помощью встроенного приложения «Терминал».

Запустите программу и выполните команду:
ssh username@X.X.X.X
где X.X.X.X — IP-адрес сервера или доменное имя сайта.

Читайте также:  Включит windows ntp клиента

Введите пароль от Панели управления и нажмите «Enter».

Secure Shell в браузере Google Chrome

Secure Shell — дополнение для Google Chrome, выпущенное компанией Google. С его помощью можно подключиться к серверу по SSH из браузера.

Установите дополнение, скачав его из официального интернет-магазина, перезагрузите браузер.

Откройте новую вкладку, перейдите в раздел «Сервисы» и кликните на значок расширения «Secure Shell» — приложение откроется в новом окне.

В поле «username@hostname или текст» укажите логин вашего аккаунта и через символ «@» хост — IP-адрес сервера или домен сайта. Нажмите кнопку «[ВВОД] Подключить».

Укажите пароль, который вы используете для входа в Панель управления и нажмите «Enter». В целях безопасности символы пароля не отображаются.

Готово, соединение установлено!

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

Для подключения к аккаунту по SSH-ключам предварительно генерируем персональную пару ключей — открытый и закрытый. Первый ключ копируем на удаленный сервер, а второй — никому не передаем (только через защищенные каналы).

Вот так ключи можно создать в ОС GNU, Linux и macOS.

Переходим в директорию .ssh и генерируем ключи командой:

ssh-keygen -t rsa -b 4096

где -t — тип ключа, а -b — длина ключа.

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

/.ssh/id_rsa). Вводим дополнительный пароль – пассфразу – и подтверждаем ее.

Далее копируем SSH-ключи на аккаунт с помощью команды:

где login – логин аккаунта, server – IP-адрес сервера.

Готово! Попробуйте подключиться по SSH к аккаунту хостинга и при авторизации укажите пассфразу.

С помощью SSH можно не только безопасно управлять сервером, но и передавать файлы. Для этой цели был создан отдельный протокол SFTP (SSH File Transfer Protocol).

Принцип его работы похож на FTP, при этом данные передаются по зашифрованному туннелю.

WinSCP для Windows

WinSCP — бесплатный клиент для подключения к серверу по SFTP из ОС Windows. Скачайте WinSCP с официального сайта, установите его на компьютер и запустите.

В выпадающем списке «Протокол передачи» выберите «SFTP». В графе «Имя хоста» введите IP-адрес сервера, где размещен ваш аккаунт, или доменное имя сайта. «Имя пользователя» и «Пароль» укажите те же, что при входе в Панель управления.

Нажмите «Да», чтобы добавить сервер в список доверенных.

Готово, соединение установлено!

Терминал в Linux и Mac OS

Для подключения по SFTP используйте приложение «Терминал».

Запустите программу и введите команду:
sftp username@X.X.X.X
где X.X.X.X — IP-адрес сервера или домен сайта.

Чтобы увидеть список доступных для SFTP команд, введите help или ? и нажмите «Enter».

Источник

Настройка sftp на сервере с авторизацией по ключу

Прилетела просьба настроить sftp доступ к серверу с авторизацией по ключу. Здоровое вступление сочинять не буду, настраиваем..

Идем на сервер, редактируем файл

В конец этого файла надо дописать следующее

Match User pashich

ChrootDirectory /home/username — для того, чтобы юзер, который подключается по sftp, не мог выйти на уровень выше данной директории.

Кроме того, на данный каталог должны быть права только у пользователя root

После этого нужно перезапустить sshd

Теперь нужно сгенерировать ключи

Пароль при запросе оставляем пустым. Оба ключа создаются в каталоге /root/.ssh/

Теперь копируем содержимое id_rsa.pub и добавляем в /home/username/.ssh/authorized_keys (при отсутствии каталога и файла создаем их)

На компутер, на котором будем настраивать клиента, копируем файл id_rsa, открываем клиента FileZilla и идем в настройки. В настройках нам понадобится sftp

В настройках sftp добавляем файл с ключом, указывая к нему путь

Далее в настройках соединения выбираем тип входа Интерактивный и вводим логин пользователя

И теперь соединение с сервером происходит без ввода пароля, с авторизацией по ключу

Читайте также:  Gparted linux не дает уменьшить разделы

Источник

SSH — авторизация по ключам

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

Для авторизации таким методом используются два ключа — «открытый» ( public_key ), который находится в домашнем каталоге пользователя, под которым будет выполняться вход на сервере, на который будет осуществляться подключение, и «закрытый» ( «privat_key« ) — тот, который будет хранится в домашнем каталоге пользователя на машине, с которой будет выполняться вход.

UPD Данный пост устарел. Версия получше тут>>>.

Далее: удалённый сервер — сервер, на котором мы настраиваем доступ по ключам (в примерах это будет akira.domain.org.ua ).

Локальная машина — компьютер, с которого будем подключаться к удалённому серверу (в примерах это будет newakira.domain.org.ua ).

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

$ uname -v
FreeBSD 9.0-RELEASE-p3

Начнём с генерации этих пар. Выполняем на удалённом сервере при помощи утилиты ssh_keygen , запущенной от имени пользователя (!), под которым будем подключаться:

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
******************************* user@akira.domain.kiev.ua
The key’s randomart image is:

На вопросы отвечаем просто нажатием Enter — менять не будем:

Enter file in which to save the key (/home/user/.ssh/id_rsa) // оставляем предложенный по-умолчанию путь к каталогу, в котором будет храниться наш приватный ключ;
Enter passphrase (empty for no passphrase) // оставляем поле пустым, закрывать ключ паролем не станем;

В данном случае используется алгоритм RSA. Можно выполнить генерацию ключа, который будет использовать алгоритм DSA — однако он не может быть использован для шифрования передаваемой информации.

Your identification has been saved in /home/user/.ssh/id_rsa // наш приватный ключ;
Your public key has been saved in /home/user/.ssh/id_rsa.pub // наш публичный ключ.

Можно просмотреть ключи, например:

$ cat /home/user/.ssh/id_rsa
——BEGIN RSA PRIVATE KEY——

——END RSA PRIVATE KEY——

На удалённом сервере настроим sshd на авторизацию с использованием ключей:

$ sudo vim /etc/ssh/sshd_config

Находим или добавляем строки:

# Разрешаем использование RSA-ключей
RSAAuthentication yes
# Разрешаем авторизацию по ключам
PubkeyAuthentication yes
# Указываем файл, в котором будут наши открытые ключи, по которым разрешена авторизация
AuthorizedKeysFile .ssh/authorized_keys

# service sshd restart
Stopping sshd.
Waiting for PIDS: 1470.
Starting sshd.

Занесём наш public_key в файл

Обязательно меняем права:

/.ssh/authorized_keys
$ chmod 700

/.ssh/ | grep key
-rw——- 1 user user 411 Jul 26 13:59 authorized_keys
$ ls -la

| grep ssh
drwx—— 2 user user 512 Jul 26 12:37 .ssh

Теперь — необходимо настроить систему на локальной машине, с которой будет выполняться вход.

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

На удалённом сервере выполняем:

Один раз авторизуемся с удалённого сервера на локальную машину:

Проверяем наличие приватного ключа на локальной машине:

/.ssh/ | grep id
-rw——- 1 user user 1679 Jul 26 10:27 id_rsa

На удалённом сервере удаляем файлы приватного и открытого ключей:

$ rm id_rsa && rm id_rsa.pub

И с локальной машины пробуем подключиться к удалённому серверу:

$ ssh -p 2222 domain.org.ua
Last login: Fri Jul 26 13:34:53 2013 from 178.***.***.114
FreeBSD 9.0-RELEASE-p3 (GENERIC) #0: Tue Jun 12 01:47:53 UTC 2012

Welcome to FreeBSD!

На этом настройка завершена.

При использовании Putty под Windows — потребуется утилита puttygen.

Источник

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