Winscp не получается использовать sftp на сервере вообще запущен sftp

Обновлено: 07.07.2024

Привет, я могу войти в виртуальную машину GCE с WinSCP, используя свое собственное имя пользователя, не могу войти в систему как root . это по умолчанию согласно Google и может быть изменено.

Шаг 1: Войдите в SSH и Su Root

Шаг 2: измените пароль Root

Шаг 3. Настройте SSH, чтобы разрешить вход в систему с правами root

Пытался войти в систему как root через WinSCP, но получаю

Хммм, я добавил это в WinSCP в дополнительных настройках в разделе «Параметры протокола»: sudo / usr / lib / openssh / sftp-servers

Теперь я могу войти под своим именем пользователя и перемещать файлы. Хотя не совсем уверен, как это работает, я думаю, что это каким-то образом меняет вас на пользователя root при входе в систему?

Я подключился к экземпляру по ssh с помощью PuTTY с именем пользователя «ubuntu». После этого я набрал

И с этим пользователь был изменен на root.

Если вы использовали Ubuntu linux и пытаетесь подключиться к серверу, то «Пожалуйста, войдите в систему как пользователь Ubuntu», вы должны использовать sftp как пользователь ubuntu, а не как root.

Попробуйте, надеюсь, это сработает для вас!

ПРИМЕЧАНИЕ. Для всех, кто сталкивается с этим и просто хочет скопировать файлы, независимо от того, какой файловый протокол они используют. Вы можете просто переключить файловый протокол с SFTP на SCP, чтобы избежать этой проблемы. Думал, что об этом стоит упомянуть.

Получен слишком большой пакет SFTP. Максимальный поддерживаемый размер пакета - 102400 Б .

Причина: Эта проблема может возникнуть, когда ваш файл .bashrc выводит данные на экран (например, archey , screenfetch). Файл .bashrc запускается каждый раз при инициализации любой консольной оболочки.

enter image description here

Решение: Просто переместите все сценарии, которые генерируют вывод из вашего файла .bashrc , в свой .bash_profile . .bash_profile запускается только при создании физического сеанса оболочки.

Настройка SFTP доступа

Если по какой-то причине потребовалось дать удаленный доступ к файлам на компьютер под управлением операционной системы из семейства Linux, то безопаснее всего будет это сделать через SFTP. SFTP обозначает SSH File Transfer Protocol, и не имеет никакого отношения к обычному FTP протоколу, а так же в разы безопаснее. Однако, приступим к настройке.

Опубликованные ниже манипуляции проводились с операционной системой Debian 7.

Создание пользователя для SFTP

Создаем нового пользователя:

-m - указывает необходимость создать домашнюю директорию пользователя в каталоге /home;
-s - задает оболочку пользователя - /sbin/nologin запрещает пользователю использовать shell.
crazyadmin - имя пользователя

Устанавливаем созданному пользователю пароль:

Если что-то пошло не так, то всегда можно удалить пользователя командой userdel username, например:

И создадим для нового пользователя папку chroot, о её предназначении будет рассказано ниже.

Настройка сервера SSH

Теперь отправляемся в конфиг SSH - /etc/ssh/sshd_config

Ищем следующую строчку:

Теперь отправляемся в самый конец конфига, и там дописываем:

ChrootDirectory - родительский каталог той папки, к которой мы хотим открыть доступ по SFTP. В данном примере используется директория chroot, которая лежит в папке пользователя.

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

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

После завершения всех манипуляций с SSH сервером, его нужно перезагрузить:

Настройка директорий для пользователя SFTP

Отправляемся в директорию /home и там ищем папку свежесозданного пользователя, а в ней папку chroot. Устанавливаем её владельцем пользователя root:

Устанавливаем нужные права на папку:

Внимание! Ни в коем случае не следует выставлять ChrootDirectory какие-либо другие права, в таком случае будет выскакивать следующая ошибка: fatal: bad ownership or modes for chroot directory component.

Теперь представим, что нам нужно предоставить доступ к нескольким папкам, и они все лежат за пределами ChrootDirectory. Выход из ситуации следующий:

Теперь смонтируем в эту папку ту директорию, доступ к которой нам нужно обеспечить:

Если в процессе монтирования директории что-то пошло не так, то можно убрать монтирование командой unmount:

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

Частые ошибки

  • fatal: bad ownership or modes for chroot directory component - как писалось выше, данная ошибка появляется тогда, когда владельцем ChrootDirectory является не пользователь root, и права не равны 755.
  • No supported authentication methods available (server sent public key) - сервер настроен на авторизацию по ключу. Если нужна авторизация по паролю, то в конфиге /etc/ssh/sshd_config нужно поменять значение у переменной PasswordAuthentication с no на yes, а после перезапустить сервер командой service ssh restart.
Была ли эта статья Вам полезна?
Что в статье не так? Пожалуйста, помогите нам её улучшить!

Комментарии к статье (9)

Такая же ошибка как у Сергея, под crazyadmin не хочет подключатся, а под root сразу заходит.

Команда: open "crazyadmin@192.168.1.50" 22
Команда: Pass: *****
Ошибка: Network error: Software caused connection abort
Ошибка: Невозможно подключиться к серверу
Статус: Отключен от сервера
Статус: Соединяюсь с 192.168.1.50.
Статус: Connected to 192.168.1.50
Статус: Получение списка каталогов.
Статус: Listing directory /root
Статус: Список каталогов "/root" извлечен

OpenSSH сервер обновлен, Iptables и антивирус отключены. Проверял на FileZilla и на WinSCP.

Subsystem sftp internal-sftp

Match User user
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no
ForceCommand internal-sftp
ChrootDirectory /home

Если домашний каталог пользователя указать в /dev/null, то невозможно будет сделать авторизацию по ключам, так как негде будет их хранить. Все прекрасно работает и любой нормальном папкой в качестве домашнего каталога, важно чтобы владелец его был root:root и права записи были только у него (750 или 755 на ваш выбор).

При подключении вот такое в filezilla:
Статус: Соединяюсь с xxx.
Ответ: fzSftp started, protocol_version=8
Команда: open "dmitry@xxx" 22
Команда: Pass: **********
Ошибка: Server unexpectedly closed network connection
Ошибка: Невозможно подключиться к серверу

На ум приходит несколько вариантов:

  • Старая версия OpenSSH сервера, попробуйте узнать её с помощью команды sshd -V . Если версия ниже 6.3p1, то вам нужно обновить OpenSSH сервер.
  • Что-то обрывает связь между Вами и сервером (антивирус, фаирволл у клиента или сервера).

Сделал все, как в статье. Но на команду service ssh restart Shell реагирует
Redirecting to /bin/systemctl start ssh.service
Failed to start ssh.service: Unit not found.

И пользователь через WinSCP не может пробиться. И Выдает:
Authentication log (see session log for details):
Using username "userSFTP".
Authentication failed.
The server rejected SFTP connection, but it listens for FTP connections.
Did you want to use FTP protocol instead of SFTP? Prefer using encryption.

Причем, пользователь root заходит без проблем.

По поводу не рабочей команды service ssh restart - какой у вас дистрибютив Linux? Попробуйте команду systemctl restart ssh .

По поводу авторизации - а Вы уверены, что у вас пользователь действительно зовется userSFTP? По умолчанию, Linux не дает использовать заглавные буквы в имени пользователя, убедитесь в правильности его имени и вообще существования в системе.

Ребята, подскажите пожалуйста в чем может быть проблема.
Конфигурация:
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes

KeyRegenerationInterval 3600
ServerKeyBits 1024

SyslogFacility AUTH
LogLevel INFO

LoginGraceTime 120
PermitRootLogin no
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes

IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

AcceptEnv LANG LC_*

Subsystem sftp internal-sftp

Match User testuser
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no
ForceCommand internal-sftp
ChrootDirectory %h/chroot

(/home/testuser - root:root; /home/testuser/chroot - testuser:testuser)

1. В параметре MatchUser - работает, только если указывать группу, а не пользователя. Если прописывать параметр MatchGroup - то не работает.
2. При подключении вижу все корневые папки.

В логах есть что-нибудь, какие-нибудь ошибки?

И как минимум я вижу, что у /home/testuser владельцем должен быть testuser, а у /home/testuser/chroot владельцем должен быть root:root.

WinSCP - это графический SFTP-клиент для Windows с открытым исходным кодом. Он также поддерживает протокол SCP.

Включение SSH

SFTP (SSH File Transfer Protocol) - протокол прикладного уровня для передачи данных (подобно протоколу FTP) в зашифрованном виде. В качестве базового протокола используется безопасный протокол SSH.

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

Чтобы включить доступ по SSH, достаточно в Панели Управления аккаунтом нажать на кнопку включения доступа. Она располагается на главной странице в табличке "Тех. информация".


Далее расскажем, что же необходимо для работы с WinSCP.

Установка и настройка WinSCP

Итак, скачиваем и устанавливаем WinSCP.

При первом запуске Вы увидите окно следующего вида:


Вводите имя сервера ("Host Name"). Имя сервера указано в Панели Управления на главной странице в табличке "Общая информация" или в разделе FTP. Имя пользователя и пароль ("User Name", "Password") - это Ваши логин и пароль для входа в Панель Управления.

Вы можете сразу подключиться, нажав "Login", или для удобства сохранить сессию, нажав "Save". При сохранении сессии будет предложено ввести имя сессии и выбор, сохранять или нет пароль.


На вкладке "Stored Sessions" Вы можете видеть сохранённые сессии. Вы можете выбрать сохранённую сессию в списке и нажать "Login" для подключения.


На вкладке "Preferences" Вы можете настроить вид программы после подключения. Вы можете выбрать интерфейс в стиле Norton Commander или в стиле проводника Windows Explorer. По умолчанию выбран первый вариант.


После подключения, если выбран интерфейс в стиле Norton Commander, Вы увидите примерно следующее:


Этот интерфейс более удобен для управления с клавиатуры, им можно пользоваться вообще без помощи мыши. Он также позволяет выполнять основные операции быстрее и более наглядно.

После подключения, если выбран интерфейс в стиле проводника Windows Explorer, Вы увидите примерно следующее:


Этот интерфейс хорошо известен всем пользователям ОС Windows.

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


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



Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел "Помощь и поддержка".

Доступ к файлам по SFTP через WinSCP

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

Здесь будет показана настройка на примере бесплатного клиента WinSCP.

Генерация ssh-ключа

  1. В новом окне нажмите на кнопку Generate. Появится строка с прогрессом — начните водить мышкой в границах окна и не останавливайтесь, пока прогресс не дойдёт до конца.
  2. В результате генерации окно преобретёт вид, как на экране справа (текст в полях ввода будет отличаться).
  3. Нажмите на кнопку Save private key (ответьте утвердительно на предупреждение о пароле) и сохраните его туда, где этот файл не потеряется.
  4. Выделите весь текст в поле Public key, скопируйте его, вставьте в поле доступа к SFTP на Вашей странице и отправьте форму. Текст должен начинаться так: ssh-rsa AAAA…
  5. Закройте окно генерации ключа.

PuTTYgen можно скачать и использовать и отдельно от WinSCP.

Создание SFTP-подключения

В начальном окне WinSCP выберите строку Новое подключение в списке слева и введите следующие данные в поля справа:

Внимание: храните файл ключа в секрете — он настолько же важен, как и любой пароль.

Указание закрытого ключа в дополнительных настройках подключения

Для корректного отображения русских символов перейдите в раздел Среда и для поля Кодировка UTF-8 для имён файлов выберете значение Вкл.

Закройте диалог нажатием на кнопку OK.

Подключение настроено, сохраните его кнопкой Сохранить.

Указание кодировки UTF-8 для отображения русских имён файлов

При первом подключении к серверу WinSCP выдаст предупреждение о том, что ему не известен ключ сервера. Подтвердите продолжение, нажав Да.

Читайте также: