Как разрешить ssh под root

Как разрешить ssh под root Техника

Authored by:  John Abercrombie


  1. /etc/ssh/sshd_config
    
  2. #PermitRootLogin no
    
  3. PermitRootLogin yes
    
  4. Save and close your text editor.

  5. sshd -t
    
    sudo sshd -t
    
    [root@testserver ~]# sshd -t
    [root@testserver ~]#
    
  6.  service sshd reload
    

    In CentOS 7 and later, you can use the systemctl reload sshd command instead of the service
    command to reload SSH. However, service works in both CentOS and the Ubuntu operating system.

  7. service sshd status
    

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License

Как разрешить ssh под root

See license specifics and DISCLAIMER

SSH — (Secure Shell) — это протокол удаленного управления компьютером с операционной системой Linux. В основном ssh используется для удаленного управления серверами через терминал. Если вы администратор нескольких серверов или даже продвинутый веб-мастер, то наверное, вы часто сталкиваетесь с необходимостью работать с тем или иным компьютером по ssh. В Linux для этого используется сервер ssh на машине, к которой нужно подключится и клиент, на той из которой подключаются.

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

Картинки по запросу ssh root login

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

Отключить доступ root

Просмотрим содержание конфигурационного файла SSH, используя следующую команду:

# cat /etc/ssh/sshd_config

В этом файле мы найдем следующую строчку:

#PermitRootLogin no

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

# /etc/init.d/ssh restart

Как ранее упомянуто, хорошая практика безопасности не должна предоставлять  доступ руту через SSH вообще.

AllowUsers root@xxx.xxx.xxx.xxx

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

# /etc/init.d/ssh restart


Пожалуйста, не спамьте и никого не оскорбляйте.

Это поле для комментариев, а не спамбокс.

Рекламные ссылки не индексируются!

  • 29.09.2019
  • 12 693
  • 02.10.2021
  • 6

Как разрешить root  доступ по SSH в Linux



Хотя это и не рекомендуется делать из соображений безопасности, иногда возникает необходимость разрешить пользователю root доступ через SSH. В данной статье пойдет речь о том, как это сделать.

Содержание
  1. Описание
  2. Разрешаем root доступ по SSH с вводом пароля
  3. Разрешение входа root по SSH в Ubuntu 20.04, пошаговые инструкции
  4. Разрешить SSH Доступ пользователю или группе
  5. Запретить SSH Доступ пользователю или группе
  6. Обоюдоострый меч
  7. Отключение SSH-доступа для root
  8. Более безопасный способ разрешить root-доступ по SSH
  9. Въезд запрещен
  10. Базовый синтаксис
  11. Настройка сервера SSH
  12. Порт ssh
  13. Протокол SSH
  14. Рут доступ
  15. Доступ только определенного пользователя к SSH
  16. Выполнение X11 приложений
  17. Отключить root-вход
  18. Использование SSH
  19. Подключение к серверу
  20. Выполнить команду
  21. Выполнить локальный скрипт
  22. Бекап на удаленный сервер и восстановление
  23. Аутентификация без пароля
  24. Взять пароль из локального файла
  25.  Изменить приветствие SSH
  26. Смотрим неудачные попытки входа SSH
  27. Передача файлов по SSH
  28. Запуск графических приложений по ssh
  29. Завершение сессии SSH
  30. Туннели SSH
  31. Включить вход в систему с правами root
  32. Настройка сервера SSH
  33. 1. Смена порта
  34. 2. Отключение входа суперпользователя
  35. 3. Авторизация по ключу
  36. Настройка клиента
  37. Применение корневых настроек
  38. Выводы
  39. Выводы

Описание

В последних версиях Ubuntu, например, доступ для пользователя root — отключен, как впрочем и сама учетная запись root. Чтобы это изменить, необходимо внести правки в конфигурационный файл ssh, который обычно расположен по следующему пути: /etc/ssh/sshd_config



Разрешаем root доступ по SSH с вводом пароля

Первым делом ищем в конфигурационном файле строчку PermitRootLogin, скорей всего она будет закомментирована символом #. Для примера в Ubuntu 18.04.3 эта строчка имеет следующий вид:

#PermitRootLogin prohibit-password

Чтобы разрешить доступ для рута через ssh, необходимо эту строчку раскомментировать и заменить на следующую:

PermitRootLogin yes

Необходимо иметь ввиду, что к моменту внесения этих изменений, пользователь root уже должен быть активен в системе, чтобы под ним можно было зайти — о том, как это сделать, можно прочитать в данной статье.

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

sudo service sshd reload

Теперь можно попробовать зайти на сервер через ssh под учетной записью root и введя его пароль.



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

В этой небольшой статье мы рассмотрим как настроить SSH в Debian 10 для подключения к системе извне, а также основные параметры на которые стоит обратить внимание.

Если во время установки Debian вы выбрали установку SSH сервера, то в готовой системе он будет уже установлен и запущен. Для проверки его состояния выполните:

sudo systemctl status sshd

Как разрешить ssh под root

Если отображается надпись active, running, значит всё хорошо. В противном случае надо установить SSH сервер. Для этого используйте такую команду:

sudo apt install openssh-server ssh

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

sudo systemctl start sshd

Если на вашем сервере используется фаервол UFW, то вам надо разрешить удалённое подключение к порту 22:

sudo ufw allow ssh

Установка ssh в Debian завершена. Теперь вы можете попытаться подключится к SSH серверу локально:

При первом подключении надо будет подтвердить добавление ключа сервера в файл ~/.ssh/known_hosts. Затем перед вами откроется приглашение ввода в консоли SSH.

SSH (Secure Shell) используется для безопасной обработки сетевых сервисов в незащищенной сети.

Некоторые примеры включают в себя: удаленную командную строку, вход в систему и удаленное выполнение команд.

В этой статье вы узнаете, как включить SSH-доступ для пользователя root на сервере/настольном Ubuntu 20.04.

Разрешение входа root по SSH в Ubuntu 20.04, пошаговые инструкции

Откройте файл /etc/ssh/sshd_config с правами администратора и измените следующую строку:

FROM:
#PermitRootLogin prohibit-password
TO:
PermitRootLogin yes

Быстрый способ выполнить эту работу – просто использовать команду sed, как показано ниже:

$ sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

Перезапустите службу SSH:

$ sudo systemctl restart ssh

По умолчанию пароль root не установлен в Ubuntu 20.04, и появится сообщение об ошибке:

Permission denied, please try again

По этой причине нам необходимо установить пароль root.

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

$ sudo passwd
[sudo] password for itsecforu 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Учитывая, что ваша система Ubuntu 20.04 разрешает входящий трафик на порту 22 по ssh, теперь вы должны быть готовы к SSH-входу в систему от пользователя root:

$ ssh root@ubuntu-server
root@ubuntu-server's password: 
Welcome to Ubuntu Focal Fossa (GNU/Linux 5.3.0-23-generic x86_64)

Дополнительно:  Kaspersky antivirus personal root certificate как отключить в яндексе


Пожалуйста, не спамьте и никого не оскорбляйте.

Это поле для комментариев, а не спамбокс.

Рекламные ссылки не индексируются!

По умолчанию в SSH root не включен из соображений безопасности. Однако, если вы управляете большим количеством систем и вам нужен постоянный root-доступ для выполнения скриптов, автоматизации и т. Д., Включение этой функции является обязательным.

Чтобы было ясно, включение входа в систему Root через SSH опасно. Не делайте этого, если вы новичок в SSH!

Первым шагом к включению входа в систему с правами root через SSH является включение учетной записи Root. Для многих дистрибутивов Linux (Ubuntu и ему подобных) Root не активен в целях безопасности. Вместо этого пользователи делают все через привилегии sudo. По большей части не использовать учетную запись Root — это нормально, и sudo справится с этой задачей. Однако при использовании SSH пользователям необходимо знать пароль root.

Сначала войдите на свой удаленный сервер / ПК, на котором вы хотите удаленно включить Root over SSH:

ssh [email protected]

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

sudo -s

Использование sudo с -s предоставит пользователю оболочку Root, как и вход в систему с помощью su. Отсюда можно вызвать команду «новый пароль» для пользователя Root.

passwd

Запуск passwd предложит пользователю указать «новый пароль UNIX». Введите новый пароль для учетной записи Root на вашем ПК. В целях безопасности не используйте тот же пароль для Root, что и для вашей обычной учетной записи. Обязательно создайте безопасный, но запоминающийся пароль для учетной записи.

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

exit

Наконец, убедитесь, что новый пароль Root работает, войдя в него через su.

su -

В этом руководстве мы рассмотрим, как разрешить или запретить доступ SSH к определенному пользователю или группе в Linux

Файл конфигурации OpenSSH по умолчанию имеет две директивы для разрешения и запрета доступа SSH к определенному пользователю (пользователям) или группе.

Во-первых, мы увидим, как разрешить SSH-доступ для определенного пользователя, например sk.

Обратите внимание, что все команды должны выполняться как пользователь root.

Разрешить SSH Доступ пользователю или группе

Перейдите на ваш удаленный сервер и отредактируйте файл sshd_config:

$ sudo vi /etc/ssh/sshd_config

Добавьте или отредактируйте следующую строку:

Замените «sk» на свое имя пользователя.

Вы также можете указать несколько пользователей, как показано ниже.

Чтобы разрешить целую группу, скажем, например, root, добавьте / отредактируйте следующую строку:

Те, кто входит в группу, могут передавать ssh на удаленный сервер.

Сохраните и закройте конфигурационный файл SSH.

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

$ sudo systemctl restart sshd

Теперь пользователям sk, itsecfor или всем пользователям под группой «root» разрешено ssh на ваш удаленный сервер. Другие пользователи (кроме sk, itsecforu и пользователи «root») не могут.

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

Permission denied, please try again.

Теперь давайте рассмотрим, как запретить / отключить доступ ssh определенному пользователю или группе.

Запретить SSH Доступ пользователю или группе

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

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

 $ sudo vi /etc/ssh/sshd_config 

Добавьте / отредактируйте следующую строку в файле sshd_config.

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

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

Сохраните и закройте файл конфигурации ssh.

Перезапустите службу ssh, чтобы внести изменения.

$ sudo systemctl restart sshd

если вы пытаетесь использовать ssh для сервера с использованием запрещенных пользователей, например sk:

Появится следующее сообщение:

 sk@192.168.1.150's password:
Permission denied, please try again.
sk@192.168.1.150's password: 

Что еще более важно, вы также должны отключить вход пользователя root.

Доступ root по ssh считается плохой практикой с точки зрения безопасности.

Чтобы отключить root ssh login, отредактируйте файл sshd_config:

 $ sudo vi / etc / ssh / sshd_config 

Найдите следующую строку, Раскомментируйте ее и установите значение равным no.

 PermitRootLogin no 

Перезапустите службу SSH. Вы только что отключили вход ssh root.

Ноутбук Linux с приглашением bash

Вход в систему в качестве пользователя root Linux является плохой практикой. Вход в систему с правами root через SSH-соединение еще хуже. Мы расскажем вам, почему, и покажем, как этого избежать.

Обоюдоострый меч

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

Учетная запись пользователя root, как и все учетные записи, защищена паролем. Без пароля пользователя root никто другой не сможет получить доступ к этой учетной записи. Это означает, что привилегии и полномочия root не могут быть использованы кем-либо еще. Оборотная сторона заключается в том, что единственная защита между злоумышленником и полномочиями root — это пароль. Пароли, конечно, можно угадать, вычислить, найти где-то записанными или подобрать методом грубой силы.

Из-за этих рисков многие современные дистрибутивы Linux не позволяют пользователю root входить в систему локально, не говоря уже о SSH. Пользователь root существует, но для него не установлен пароль. И все же кто-то должен уметь администрировать систему. Решение этой головоломки — команда sudo.

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

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

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

Разрешение входа в систему root через SSH увеличивает риски, поскольку злоумышленникам не обязательно быть локальными; они могут попытаться взломать вашу систему удаленно.

Это не произойдет случайно. Но это могут сделать люди, которые не понимают связанных с этим рисков. Если вы возьмете на себя администрирование компьютера в таком состоянии, вам нужно будет сообщить владельцам, почему это плохая идея, а затем вернуть систему в безопасное состояние. Если это было что-то настроено предыдущим системным администратором, владельцы могут об этом не знать.

Вот пользователь на компьютере с Fedora, подключающийся по SSH к компьютеру с Ubuntu в качестве пользователя root на компьютере с Ubuntu.

Пользователь root подключается к удаленному компьютеру с помощью SSH.

Компьютер Ubuntu позволяет пользователю root входить в систему через SSH. На компьютере с Ubuntu мы видим, что активное соединение выполняется от пользователя root.

Дополнительно:  Не создается дамп памяти windows 10

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

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

Отключение SSH-доступа для root

Чтобы отключить доступ по SSH для пользователя root, нам нужно внести изменения в файл конфигурации SSH. Он находится в «/etc/ssh/sshd_config». Нам нужно будет использовать sudo, чтобы записать в него изменения.

sudo gedit /etc/ssh/sshd_config

Редактирование файла sshd-config

Прокрутите файл или найдите строку «PermitRootLogin».

Как разрешить ssh под root

Либо установите для этого параметра значение «нет», либо закомментируйте строку, поместив решетку «#» в качестве первого символа в строке. Сохраните изменения.

Как разрешить ssh под root

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

sudo systemctl перезапустить ssh

Перезапуск демона sshd

Если вы также хотите запретить локальный вход в систему, отключите пароль root. Мы используем подход с поясом и фигурными скобками и используем опции -l (блокировка) и -d (удаление пароля).

sudo пароль root -ld

Блокировка учетной записи root и удаление пароля root

Более безопасный способ разрешить root-доступ по SSH

Иногда вы будете сталкиваться с сопротивлением руководства при удалении root-доступа через SSH. Если они действительно не будут слушать, вы можете оказаться в положении, когда вам придется восстановить его. Если это так, вы должны быть в состоянии скомпрометировать таким образом, чтобы снизить риск и по-прежнему разрешать удаленный вход в систему от пользователя root.

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

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

Нам также потребуется еще раз отредактировать файл «sshd_config».

sudo gedit /etc/ssh/sshd_config

Редактирование файла sshd-config

Измените строку «PermitRootLogin», чтобы в ней использовалась опция «запретить пароль».

Как разрешить ssh под root

Сохраните изменения и перезапустите демон SSH.

sudo systemctl перезапустить ssh

Перезапуск демона sshd

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

Пользователь root подключается к удаленному компьютеру с помощью SSH без пароля.

Въезд запрещен

Отказ от удаленных подключений от пользователя root — лучший вариант. Разрешить root подключаться с помощью SSH-ключей — второй вариант, но все же намного лучше, чем использование паролей.

Базовый синтаксис

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

Важно заметить что ssh может работать по двум версиям протокола. Версии 1 и 2. Понятное дело, что версия 2 лучше и поддерживает больше типов шифрования и аутентификации. Больше в этой статье об отличиях протоколов мы говорить не будем и я буду подразумевать что вы используете версию 2.

Теперь давайте рассмотрим самые основные опции команды ssh:

  • f — перевести ssh в фоновый режим;
  • g — разрешить удаленным машинам обращаться к локальным портам;
  • l — имя пользователя в системе;
  • n — перенаправить стандартный вывод в /dev/null;
  • p — порт ssh на удаленной машине;
  • q — не показывать сообщения об ошибках;
  • v — режим отладки;
  • x — отключить перенаправление X11;
  • X — включить перенаправление Х11;
  • C — включить сжатие.

Это далеко не все опции утилиты, остальные выходят за рамки данной статьи. Многие настройки работы ssh можно изменять через конфигурационный файл ~/.ssh/config но здесь мы это тоже подробно рассматривать не будем.

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

Настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Многие из них мы тоже трогать не будем. Рассмотрим только самые интересные. Сначала откройте файл /etc/ssh/sshd.conf

Порт ssh

По умолчанию ssh работает на порту 22. Но такое поведение небезопасно, поскольку злоумышленник знает этот порт и может попробовать выполнить Bruteforce атаку для перебора пароля. Порт задается строчкой:

Поменяйте значение порта на нужное.

Протокол SSH

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

И приведите ее к такому виду:

Рут доступ

По умолчанию Root доступ по ssh разрешен, но такое поведение очень небезопасно, поэтому раскомментируйте строчку:

Доступ только определенного пользователя к SSH

Мы можем разрешить доступ к ssh только для определенного пользователя или группы. Для этого  добавьте строчки:

Выполнение X11 приложений

Не все знают но есть возможность использовать ssh для запуска полноценных X11 приложений. Об этом мы поговорим ниже, но чтобы все заработало необходимо разрешить эту возможность на стороне сервера, добавьте такую строчку:

Основные опции рассмотрели, перед тем как переходить дальше, не забудьте перезагрузить ssh сервер чтобы сохранить изменения:

service sshd restart

Отключить root-вход

Как разрешить ssh под root

Больше не хотите входить в систему через SSH? К счастью, эту функцию так же легко отключить, как и включить. Первый способ — просто заблокировать учетную запись Root. Выполнение этого способа позволяет включать и выключать параметр на лету, разблокировав учетную запись Root. Чтобы заблокировать Root, получите оболочку суперпользователя через sudo и запустите:

passwd --lock root

Эта команда шифрует учетную запись root и фактически отключает ее. Чтобы вернуть его для использования с Root over SSH, следуйте инструкциям в верхней части статьи.

В качестве альтернативы, чтобы полностью отключить вход в систему Root, откройте терминал (с Root):

su -
sudo -s

В файле конфигурации SSH найдите «PermitRootLogin» и измените его с «да» на «нет».

nano /etc/ssh/sshd_config

Нажмите Ctrl + O, чтобы сохранить, выйдите, нажав Ctrl + X, а затем перезагрузитесь. После сброса вход в систему Root работать не будет.

Использование SSH

Основная цель этой статьи — показать интересные и полезные способы использования ssh, о которых, возможно, вы не знали. Переходим к самому вкусному — возможности ssh.

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

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

Выполнить команду

Мы привыкли подключаться к удаленному серверу, а уже потом выполнять нужные команды, но на самом деле утилита ssh позволяет сразу выполнить нужную команду без открытия терминала удаленной машины. Например:

Выполнит команду ls на удаленном сервере и вернет ее вывод в текущий терминал.

Выполнить локальный скрипт

Выполним интерпретатор bash на удаленном сервере и передадим ему наш локальный скрипт с помощью перенаправления ввода Bash:

Бекап на удаленный сервер и восстановление

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

Здесь и выше /dev/sda имя файла вашего жесткого диска.

Аутентификация без пароля

Использование ssh пароля для входа на сервер не только неудобно но и небезопасно, потому что этот пароль в любой момент может быть подобран. Самый надежный и часто используемый способ аутентификации — с помощью пары ключей RSA. Секретный ключ хранится на компьютере, а публичный используется на сервере для удостоверения пользователя.

Настроить такое поведение очень легко. Сначала создайте ключ командой:

ssh-keygen -t rsa

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

Затем отправляем ключ на сервер:

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

Взять пароль из локального файла

Напомню, что хранить пароли в обычных текстовых файлах небезопасно, но если хотите, то да — возможно. Для этого используется оператор перенаправления ввода Bash:

 Изменить приветствие SSH

При входе по ssh может выводиться приветствие, изменить его очень легко. За это отвечает файл /etc/issue. Просто откройте этот файл и введите нужный текст:

Дополнительно:  Can rooting powder be used on succulents?

Смотрим неудачные попытки входа SSH

Хотите посмотреть были ли попытки неудачного доступа по ssh к вашему серверу и с каких IP адресов? Запросто, все запросы логируются в файл /var/log/secure, отфильтруем только нужные данные командой:

Передача файлов по SSH

Кроме выполнения команд, можно копировать файлы по ssh. Для этого используется утилита scp. Просто укажите файл, который нужно передать, удаленный сервер и папку на сервере, вот:

Кроме утилиты scp, передача файлов ssh может быть выполнена более хитрым способом. Прочитаем файл и с помощью cat, передадим, а там сохраним поток в файл:

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

Такое копирование файлов ssh позволяет отправлять сразу целые папки.

Запуск графических приложений по ssh

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

Затем просто выполняем команду запуска графического приложения на удаленном сервере вот таким образом:

Как вы уже видели опция X разрешает перенаправление X11 на стороне клиента, а С — сжатие данных.

Завершение сессии SSH

Если вы использовали SSH с нестабильным интернетом, когда соединение время от времени рвется, то вам уже, наверное, надоело закрывать терминал, потому что иначе, на первый взгляд, сеанс никак не прекратить. Когда соединение с удаленным сервером разорвано вы не можете ввести никакую команду и сочетания клавиш Ctrl+C, Ctrl+Z, Ctrl+D не работают. И не будут работать поскольку клиент пытается отправить эти команды на сервер. Но есть решение — Escape последовательности. Чтобы активировать их поддержку добавьте строку:

В файл /etc/ssh/ssh_config. Теперь, чтобы разорвать SSH соединение достаточно нажать Enter и набрать:

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

Туннели SSH

С помощью SSH туннелей вы можете пробросить порт с удалённого сервера на локальную машину. Это очень полезно, в первую очередь, для разработчиков. Для того чтобы пробросить порт с удалённой машины локальной используйте опцию -L и такой синтаксис:

Например, сделаем удалённую базу данных доступной локально на порту 5555. Для этого выполните подставив свои значения:

Как разрешить ssh под root

Опция -N сообщает, что команду на удалённой машине выполнять не нужно. Локальный порт — 5555, поскольку сервер баз данных слушает на локальном интерфейсе удалённой машины, то и здесь надо указывать адрес 127.0.0.1. А порт MySQL по умолчанию 3306. Если же вы хотите чтобы локальный сервис был доступен на удалённой машине, то следует использовать опцию -R:

Теперь локальная база данных на порту 3306 будет доступна на удалённом сервере при обращении к порту 5555.

Включить вход в систему с правами root

Примечание. Не хотите удаленно изменять свой SSH-сервер? Измените его локально, а не в терминале.

ssh [email protected]

Мы подключены (удаленно) через SSH к серверу SSH. Затем повысите обычное соединение до Root-доступа, войдя в систему через su.

Затем, используя текстовый редактор Nano, откройте файл конфигурации SSH-сервера.

nano /etc/ssh/sshd_config

Просмотрите файл конфигурации, найдите «PermitRootLogin». Перед ним может стоять «нет». В этом случае измените «нет» на «да».

В других случаях SSH «PermitRootLogin» может сказать «запретить пароль». Удалите «запретить-пароль» и измените его на «да».

После изменения настроек Root для SSH-сервера вам необходимо сохранить изменения конфигурации. Изменения конфигурации сохраняются в Nano при нажатии комбинации клавиш Ctrl + O. Закройте редактор Nano, нажав Ctrl + X, когда конфигурация сохранится правильно.

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

Все настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Перед тем, как его редактировать лучше сделать резервную копию на всякий случай:

1. Смена порта

Одна из самых частых настроек, которую надо выполнять на большинстве серверов, это смена порта. Если у сервера есть публичный IP адрес, то его сканируют множество ботов, и как только они находят открытый порт 22, то сразу начинают пытаться перебрать пароль. Откройте конфигурационный файл и найдите строчку Port, расскоментируйте её, если нужно:

Как разрешить ssh под root

Затем пропишите нужное значение порта, например 2222:

Для того, чтобы изменения вступили в силу надо перезагрузить SSH сервер:

sudo systemctl restart sshd

Теперь, чтобы подключится к этому серверу надо будет явно указать порт с помощью опции -p:

Как разрешить ssh под root

2. Отключение входа суперпользователя

Как разрешить ssh под root

Чтобы разрешить подключение ssh Debian для пользователя root, замените значение этого параметра на yes.

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

Следующий шаг по обеспечению безопасности вашего сервера — отключить вообще авторизацию по паролю, а использовать только авторизацию по ключу. Подробнее про авторизацию по ключу рассказано здесь. В конфигурационном файле sshd вам надо изменить только несколько строчек:

Сначала найдите строку PubkeyAuthentication и замените её значение на yes:

Как разрешить ssh под root

Перед тем как отключать возможность входа по паролю убедитесь, что вы добавили ключ для авторизации, как это описано в статье выше. Затем замените значения параметров ChallengeResponseAuthentication, PasswordAuthentication, UsePAM на no.

Настройка клиента

Для каждого пользователя можно сделать отдельные настройки клиента SSH. Для этого используется файл .ssh/config. Синтаксис файла такой:

Хост имя_хоста
  Параметр значение

Таких секций может быть сколько угодно. Сначала надо указать хост, для которого будут применяться настройки, затем параметры для него. Можно создать секцию, которая будет работать для любого хоста, для этого используйте *. Например, чаще всего для подключения по SSH используется пользователь root. Давайте использовать его по умолчанию для всех подключений:

Host *
  User root

Как разрешить ssh под root

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

Host localhost
Port 2222

Как разрешить ssh под root

Теперь при подключении можно просто набрать:

Как разрешить ssh под root

Применение корневых настроек

Теперь, когда в настройках включен вход в систему с правами root, вам необходимо перезапустить демон SSH, чтобы применить изменения. На большинстве компьютеров с Linux это легко сделать с помощью systemd. В терминале получите root-доступ с помощью su или sudo:

su -
sudo -s

После получения root используйте systemd для перезапуска демона SSH.

systemctl restart sshd

Не использовать systemd? Вместо этого попробуйте эту команду:

service ssh restart

Если ни одна из команд не работает для перезапуска демона SSH, надежный способ — просто перезапустить сервер, на котором запущен SSH:

reboot
[email protected]

Выводы

В этой статье мы рассмотрели как установить ssh, а также как выполняется настройка SSH в Debian. Теперь вы знаете основные моменты, которые надо сделать чтобы комфортно пользоваться этим сервисом. А какие настройки SSH делаете вы? Напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Выводы

Теперь вы знаете как пользоваться SSH. Как видите, технология SSH позволяет сделать намного больше чем можно предположить с первого взгляда, и это еще далеко не все. Какие интересные возможности SSH используете вы при повседневной работе? Поделитесь в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Оцените статью
Master Hi-technology
Добавить комментарий