- Установка и настройка сервера SSH в Linux
- Установка пакетов SSH
- Настройка SSH
- How to install and use SSH on Linux
- Configure SSH on a Local Computer
- Configure SSH on a Remote Computer
- Install SSH server
- Check SSH status
- Find out Server’s IP
- Open SSH port in Firewall
- Connect using SSH
- SSH in FileZilla
- SSH in File Manager
- Forward X
- Transfer files
- Final thoughts
- Команда ssh Linux подключение и настройка
- Синтаксис
- Настройка
- Строка Port
- Строка — Protocol 2,1
- Запрет входа root через ssh
- Вход только одному пользователю
- Примеры
Установка и настройка сервера SSH в Linux
Secure Shell, т. е. SSH – протокол, обеспечивающий защищённые соединения и передачу данных между двумя удалёнными компьютерами. Изначально создавался на замену таким системам как rlogin и rcp. Как понятно из полного названия протокола, система SSH позволяет соединяться и управлять удалённым узлом (компьютером, маршрутизатором и т. д.), при этом защищая весь передаваемый трафик с помощью высоконадёжного шифрования.
SSH широко применяется администраторами серверов для их настройки и управления, да и обычные продвинутые пользователи — владельцы, например, сайтов или виртуальных серверов активно используют SSH для подключения к своей учётной записи на хостинге и использования командной оболочки сервера.
Сразу после окончания разработки система SSH стала активно трансформироваться в закрытый коммерческий продукт в виде версии SSH2. Но благодаря сообществу GNU версии протокола SSH1 и SSH2 были реализованы в виде открытого и свободно распространяемого ПО openSSH. В Linux-системах используется именно этот метапакет.
Метапакет SSH базово включает в себя сервер SSH (sshd) в качестве програмы-демона, а также несколько утилит: ssh – удаленная регистрация и выполнение команд, scp – передача файлов и ssh-keygen – для генерации пар SSH-ключей.
Установка пакетов SSH
Как уже говорилось система ssh в Linux-системах распространяется в виде составного метапакета, поэтому для установки всех требуемых утилит ssh нужно выполнить всего одну команду:
В Ubuntu
После чего начнется процесс установки
Как видно, менеджер пакетов сам распознает все зависимые и связанные пакеты и установит их. Также, по завершению установки, автоматически будет запущен SSH-сервер в режиме демона. Это можно проверить командой:
$ systemctl status sshd
или:
$ service sshd status даст тот же вывод. Теперь сервер работает с базовыми настройками по-умолчанию.
Настройка SSH
Режим работы SSH-сервера с настройками по-умолчанию хоть и является вполне работоспособным для небольших частных сетей, всё же нуждается в задании некоторых важных параметров для использования на высоконадёжных публичных серверах. Настройки демона хранятся в файле /etc/ssh/sshd_config. Посмотреть его можно командой
В первую очередь следует обратить внимание на следующие параметры: Port, AddressFamily, ListenAddress. Первый глобально задаёт номер порта, через который будет работать соединение и если оставить его стандартным, т. е. 22, то велика вероятность, что он будет слишком часто сканироваться роботами.
Примечание: для задания активации параметра необходимо раскомментировать соответствующую строку — убрать символ «#» в её начале.
Второй параметр задаёт семейство используемых IP-адресов — IPv4 и IPv6. Если, к примеру, используются только адреса IPv4, то очень рекомендуется установить для параметра
Для адресов семейства IPv6 используется значение inet6.
Параметр ListenAddress позволяет задавать порты для отдельных сетевых интерфейсов:
Поскольку реализация openSSH позволяет работать с протоколами SSH1 и SSH2, то разумно отключить использование SSH1, т. к. эта версия является устаревшей. Работа по SSH1 крайне не рекомендуется: Protocol 2
Очень полезным является параметр, позволяющий проводить авторизацию и шифрование трафика с помощью специальных SSH-ключей:
Следует заметить, что в таком случае серверу необходимо явно указывать, где хранятся открытые ключи пользователей. Это может быть как один общий файл для хранения ключей всех пользователей (обычно это файл etc/.ssh/authorized_keys), так и отдельные для каждого пользователя ключи. Второй вариант предпочтительнее в силу удобства администрирования и повышения безопасности:
AuthorizedKeysFile etc/ssh/authorized_keys # Для общего файла
AuthorizedKeysFile %h/.ssh/authorized_keys # Файл -> пользователь
Во втором варианте благодаря шаблону автоподстановки с маской «%h» будет использоваться домашний каталог пользователя.
Важно также отключать парольный доступ:
Или же, в случае, если всё-таки необходимо использовать доступ по паролю, то обязательно нужно отключать авторизацию по пустому паролю:
Для указания разрешённых или запрещённых пользователей и групп служат директивы DenyUsers, AllowUsers, DenyGroups, и AllowGroups. Значениями для них являются списки имён, разделяемых пробелами, например:
Следует также отключать root-доступ:
Иногда, когда следует задавать мультисерверную конфигурацию, очень удобно использовать алиасы (Aliases), что позволяет настроить сразу несколько режимов доступа (с разными хостами, портами и т. д.) и использовать их, указывая при этом конкретный алиас:
Настройки для алиасов хранятся либо глобально в /etc/ssh/ssh_config, либо раздельно для пользователей в
/.ssh/config. Здесь нужно не спутать с ssh_config! Пример:
Для применения сделанных настроек необходим перезапуск SSH-сервера:
Настройка и использование клиента SSH
Для подключения по к серверу используется команда:
где user_name – имя пользователя в системе, host_name – имя узла, к которому производится подключение, например:
При этом утилита ssh запросит (в зависимости от настроек сервера) логин, пароль или парольную фразу для разблокировки приватного ключа пользователя.
В случае авторизации по ключу, должна быть предварительно сгенерирована пара SSH-ключей — открытый, который хранится на стороне сервера, обычно в файле .ssh/authorized_keys в домашнем каталоге пользователя, и закрытый — используется для авторизации клиента и хранится, как правило, в каталоге .ssh/ домашней директории пользователя. Открытый ключ представляет собой «цифровой слепок» закрытого ключа благодаря которому сервер «знает», кто «свой», а кто «чужой».
Для генерации ключей используется утилита ssh-keygen:
Утилита предложит выбрать расположение ключей (лучше всё оставить по-умолчанию), обычно это каталог
/.ssh/, ввести парольную фразу для закрытого ключа. После чего будут сгенерированы открытый ключ id_rsa.pub и закрытый — id_rsa. Теперь нужно скопировать открытый ключ, т. е. «слепок» закрытого на сервер. Проще всего этого можно добиться командой:
Теперь можно выполнить подключение командой ssh и запустить защищённый сеанс удалённого управления.
Важно заметить, что использование сгенерированных openSSH-ключей несовместимо с PPK-форматом, используемым по-умолчанию в таких комплексах как PuTTY. Поэтому необходимо конвертировать имеющиеся openSSH-ключи в формат PPK. Удобнее всего это делать с помощью утилиты PuTTY – puttygen.exe.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
How to install and use SSH on Linux
SSH or Secure Shell allows you to connect between computers and encrypt traffic between them.
For example, I use SSH to connect to my virtual private server and to my office computer. Usually, it works only through the terminal. However, you can connect it to your file manager or use some graphical programs like FileZilla, if you do not want to type commands. You can also use graphical forwarding and open graphical programs from the remote server in your local computer.
SSH is a simple, reliable, and very secure way to establish a connection between computers. In this post, you will learn how to install, configure, and use SSH on Linux. In particular, I will show how to:
Configure SSH on a Local Computer
First, you need to set up your client Linux machine. This is the computer you will use to connect from.
You need to install openssh-client on your Linux computer.
If you also need to use Windows as a client install PuTTY.
Configure SSH on a Remote Computer
Next, configure the computer you want to connect to.
Install SSH server
On the remote computer, you need to install openssh-server .
Obviously, you will need to have physical access to the remote computer to install this package. For example, if it is my office computer, I will go to my office and install this openssh-server program.
Check SSH status
After the installation, check that SSH is running with:
You should see that it is active:
If it has not started, start it manually:
or simply reboot the system.
Find out Server’s IP
Next, you need to determine the IP address of this remote computer.
The easiest way is to check the network settings. If you have a graphical desktop in that computer, open the network settings and search for IP address.
This is how it looks in Plasma 5:
And in Ubuntu GNOME:
If you only have the command line, run:
Usually, you will see your IP address in the eth0 connection.
Write down this address, you will need it to be able to connect to this remote computer.
Open SSH port in Firewall
It is possible that you use a firewall and it may block your remote access. So, check open ports:
You should see that port 22 is open. If you do not find port 22 open among open ports, go to your firewall settings and open it.
If you use UFW run this command:
I discuss whether you need a firewall in Linux and how to use it in this post.
Connect using SSH
Now, I assume your remote computer is configured and you are sitting in front of your client Linux machine.
In your client Linux computer, run:
You use the username of the remote computer and the IP address is the address you wrote down in a previous step.
If you get a warning “Are you sure you want to continue connecting (yes/no)?”, type yes.
After you typed the password of your user at the remote computer, you will be logged in to a remote Linux computer.
Now, you can work on this remote computer as if you would be sitting in front of that computer and using the terminal.
SSH in FileZilla
If you simply want to work with files without running any programs, you can also connect to your remote server with FileZilla.
In FileZilla, go to the Site manager and add a new site with SFTP protocol:
You will get your local files on the left and your remote files on the right.
You can navigate in FileZilla with your mouse and transfer files between your computers by simple drag-and-drop between these two panels.
SSH in File Manager
Similarly, you can add the remote server to your File Manager. I use Dolphin file manager of Plasma 5 but the procedure is very similar in other file managers.
Go to the Network in your file manager and add a Network folder:
Among these options, select SFTP protocol, give a name to this folder, provide the user name of the remote account, IP address of the remote computer. In the field “remote folder path”, you can use your remote user home folder or any other folder you want to connect to.
As a result, you will see all the folders and files of your remote computer in your file manager.
Forward X
You can also forward graphical application from your remote computer to your local computer. To do that, you simply need to add the option -X during the login.
Now, if you start any graphical program in a remote computer, it will open in your local computer, like this Firefox on the screenshot.
Transfer files
To transfer a file to a remote computer in the terminal run:
And to transfer a file from a remote computer to your local computer simply type first the remote address and then local.
You can also use wild cards to transfer many files at the same time. I showed how to use wild cards in this YouTube video.
Final thoughts
As you have seen SSH is a pretty handy program. It is not difficult to install and use. However, there are some more configurations which I did not cover in this post. For example, you can enhance the security of your ssh connection with SSH keys and white-listed IP addresses. I will cover this topic in the next post. So, subscribe to this blog updates and you won’t miss it.
Источник
Команда ssh Linux подключение и настройка
ssh ( Secure Shell — «безопасная оболочка») – это протокол прикладного уровня в операционной системе «Линукс», который обеспечивает удаленный доступ управления персональным компьютером. Чаще всего такой протокол используется при удаленном управлении серверами с помощью терминала.
Если вы являетесь администратором на нескольких серверах, обладаете обширными знаниями в области веб-программирования, команда SSH должна быть знакома. Для осуществления поставленных задач в системе «Линукс» применяется сервер, установленный на машине, и клиент, из которого к ней подключаются.
Утилита ssh отличается широким функционалом, дает пользователю большие возможности. С помощью утилиты можно подключиться к серверу, а также передавать файлы, выполнять скрипты удаленным способом, управлять сервером без предварительного ввода пароля.
Синтаксис
Рассмотрим синтаксис команды.
ssh [опция] [пользователь]@[название хоста] [команда]
Стоит отметить, что утилита ssh способна работать с помощью двух версий протокола, они так и называются протокол 1 и протокол 2. Второй вариант является наилучшим, так как поддерживает значительно больше способов шифрования, а также аутентификаций. Именно поэтому протокол 2 применяется пользователями чаще всего.
- «g» — для разрешения удаленной машине пользоваться определенным локальным портом.
- «l» — для изменения/введения имя пользователя в определенной системе.
- «f» — аргумент переводит режим работы в фоновый.
- «n» — для перенаправления классического вывода.
- «p» — для изменения/введения данных о локальном порту SSH, используемом на удаленной машине.
- «q» — для исключения вероятности показа сообщений о возникающих ошибках.
- «v» — для включения специального режима отладки.
- «x» — для отключения перенаправления X11.
- «X» — для включения перенаправления Х11.
- «C» — для включения сжатия.
Представленный выше список является неполным. На самом деле команда ssh поддерживает в разы больше опций, а описанные варианты используются чаще всего. Стоит заметить, что большинство настроек можно водить с использованием файла «ssh/config».
Настройка
Для осуществления поставленной перед пользователем задачи первоначально требуется обратиться к файлу «/etc/ssh/sshd_config». Здесь имеется множество настроек, большинство из которых применяются редко. Именно поэтому рекомендуется рассмотреть те, которые пользователи вводят чаще всего.
Строка Port
Утилита работает согласно стандартным установкам на основе порта 22. Это поведение не является безопасным, так как мошенникам известен этот порт. Они могут организовать атаку Bruteforce, чтобы перебить имеющийся пароль. Требуемый порт задается с помощью строки «Port 22». Потребуется в обязательном порядке изменить показатели порта на необходимые вам данные.
Строка — Protocol 2,1
На сервере команда ssh согласно стандартным установкам используются две версии протоколов. Они предназначены для совмещения. К примеру, если потребуется использование только второго протокола, потребуется раскомментировать (удалить #) строку «Protocol 2,1» и убрать цифру 1.
Запрет входа root через ssh
В команде ssh согласно стандартным установкам разрешается Root-доступ. Данное поведение также небезопасно. Именно поэтому пользователю потребуется обязательно раскомментировать строку:
Если в конфиге нет строчки PermitRootLogin no, необходимо довать ее в конец файла.
Вход только одному пользователю
В файле конфигурации sshd_config можно добавить две директивы:
Они позволяют разрешить пользоваться ssh только конкретным пользователям или группам.
AllowUsers имя пользователя1, имя пользователя2
AllowGroups группа1, группа2
Особенности выполнения приложений Х11
Не каждый современный пользователь знает, что утилиту SSH можно применить для полноценного запуска приложений Х11. Чтобы появилась возможность использования такой функции, потребуется разрешить ее со стороны сервера. Для этих целей необходимо ввести:
Для вступления изменений, внесенных в утилиту ssh, необходим обязательный перезапуск сервиса. Для этого потребуется ввести специальную команду:
service sshd restart
Или можно перезагрузить всю машину:
Примеры
Существует большое количество методов использования утилиты. Большинство из них неизвестны современному пользователю операционной системы Линукс.
Рассмотрим подключение к серверу.
При присоединении с использованием утилиты в командной строке потребуется ввести:
Например, нам надо подключиться к компьютеру в локальной сети debian, под пользователем slon.
ВАЖНО! Вместо доменного имени компьютера в сети можно написать IP-адрес.
Все современные пользователи первоначально присоединяются к удаленной хосту (компьютеру). Только после этого они вводят требуемые команды. Утилита ssh дает возможность выполнить необходимую задачу без обязательного запуска терминала на удаленной машине.
Предположим нам надо запустить команду top на удаленном компьютере.
ssh slon@debian top
К примеру, требуется запустить скрипт bash на удаленном компьютере. Сам файл bash.sh находится на локальном компьютере . Для этих целей необходимо провести перенаправление ввода bash.
ssh slon@debian ‘bash -s’
С использованием утилиты пользователю предоставляется возможность сохранить бекап локального диска на удаленной серверной машине. Для этих целей нужно перенаправлять вывод dd с использованием оператора перенаправления. Далее вывод dd сохраняется в файле copiadiska.img.
sudo dd if=/dev/sdb | ssh slon@192.168.1.7 ‘dd of=copiadiska.img’
Для восстановления прежнего состояния локального диска используется созданная ранее копия. Для этого в командной строке нужно ввести:
ssh slon@192.168.1.7 ‘dd if=copiadiska.img’ | dd of=/dev/sdb»
Стоит отметить, что в данном случае «/dev/sdb» — это название вашего жесткого диска.
При использовании команды ssh для входа в удаленный сервер нередко требуется пароль. Это создает дополнительные неудобства, но дает возможность обезопасить вас от злоумышленников. Несмотря на защиту, пароль можно подобрать.
Наиболее надежным методом аутентификации является использование нескольких ключей RSA. Один из них хранится на ПК, а второй является публичным. Он применяется пользователем при авторизации.
Это поведение весьма просто настроить. Изначально необходимо задать ключ. Для этого потребуется ввести:
ssh-keygen -t rsa
При создании ключа пользователю необходимо ответить на определённый перечень вопросов. Если вы желаете присоединиться к удаленной машине без обязательного введения пароля, в области «Passphare» нужно оставить пустое место.
Далее ключ отправляется на удаленную машину, вводится:
После этого ключ будет сохранен. Если попробовать присоединиться к серверу повторно, вы увидите, что введение пароля уже не требуется.
Стоит отметить, размещать пароли в обыденных текстовых файлах не стоит. Ими могут воспользоваться злоумышленники Но если это потребуется, такой вариант возможен. Чтобы сохранить пароль, необходимо воспользоваться оператором, используемым при перенаправлении Bash. Введите в командной строке:
При запуске команды ssh на экране монитора нередко всплывает приветствие. Допускается его изменение. За такую функцию отвечает специальный файл «/etc/issue». Вам потребуется просто открыть данный файл и указать необходимо приветствие. Для этого вводится команда:
В некоторых случаях пользователю ОС Линукс может потребоваться информация о неудачных попытках подключения к утилите. Вы можете посмотреть IP-адреса, с которых совершалось данное действие.
Все запросы о входах концентрируются в «/var/log/secure».
Чтобы отфильтровывать информацию в терминале по запросу «Failed password» необходимо добавит grep
cat /var/log/secure | grep Failed password
Нередко пользователям требуется запустить определенное приложение с графической оболочкой на удаленном компьютере.
Для осуществления поставленной задачи не нужно использовать VNC, достаточно применить команду ssh. Программа запустится со стороны удаленной машины, пользователю транслируется лишь окно, в котором можно увидеть все, что ему необходимо.
Стоит отметить, что все получаемые данные могут шифроваться. Чтобы такая опция заработала, потребуется включить поддержку со стороны удаленного сервера. Далее выполняется команда, позволяющая загрузить графическую программу. Для этого потребуется ввести в командную строку «ssh -XC user@remotehost «eclipse»».
Нередко при использовании нестабильного соединения с сетью возможно возникновение сбоев в работе утилиты. Если соединение случайным образом было разорвано, потребуется принудительное завершение сессии. Для активации поддержки необходимо добавить в файл:
Теперь можно завершить сессию простой командой:
В завершении можно сказать, что утилита ssh имеет существенно больший функционал, чем это кажется с первого взгляда. Пользоваться такой командой можно как при программировании, так и в повседневной работе.
Источник