Настройте сервер openssh в linux с максимальной безопасностью
Содержание:
- Key Management for Windows SSH Servers
- Generating SSH keys
- Remote Forwarding
- Редактирование прав
- Ручной способ копирования
- Навигация и управление файловой системой
- Local Forwarding
- Enable SSH on Ubuntu
- Создать SSH туннель
- Secure SSH configuration file
- Как подключиться к серверу без пароля
- Настраиваем доступ по SSH
- Основные команды PuTTY
- Сгенерировать пару ключей
- Установка SSH в Ubuntu
- Basic Syntax
Key Management for Windows SSH Servers
While SSH is everywhere and its deployments are still growing in the on-premises and cloud environments, there is an aspect of SSH that requires attention in most enterprise environments.
The SSH protocol uses SSH keys for authenticating servers and users (in both interactive and machine-to-machine cases). The numbers of these keys are such that manual management of them is unfeasible in larger environments. Yet the SSH keys are access credentials, comparable to passwords, and grant (often privileged) access to resources. Management of SSH keys is a necessity for security and regulatory compliance alike. Universal SSH Key Manager is the best solution for managing SSH keys and access in enterprise networks — on-premise or in the cloud.
Generating SSH keys
Once you have installed the openssh server, you can start to generate SSH key pairs. Before proceeding, ensure you do not have an existing key pair, as this process will overwrite the existing one.
To check whether you have an existing key pair, use the command:
If you have an existing key pair, the command above should display the “id_rsa” and “id_rsa.pub” files.
Once you verify you do not have an existing SSH key pair, you can proceed to generate a new one. Otherwise, backup your old keys to avoid losing them.
To generate a new key, use the command:
The command above invokes the utility to interactively generate an SSH key pair. Using the option, we specify the key type to generate. In this case, we generate an RSA key.
We also use the option to specify the number of bits in the key. If you use an RSA key, the minimum bit size is 1024. If not specified, it will generate the key with 3072 bits.
It is good to use the default location to store the SSH keys to avoid typing the path when connecting to SSH using the keys.
If you do not want to encrypt your key with a passphrase, press Enter to skip.
Remote Forwarding
In OpenSSH, remote SSH port forwardings are specified using the option. For example:
This allows anyone on the remote server to connect to TCP port 8080 on the remote server. The connection will then be tunneled back to the client host, and the client then makes a TCP connection to port 80 on . Any other host name or IP address could be used instead of to specify the host to connect to.
This particular example would be useful for giving someone on the outside access to an internal web server. Or exposing an internal web application to the public Internet. This could be done by an employee working from home, or by an attacker.
By default, OpenSSH only allows connecting to remote forwarded ports from the server host. However, the option in the server configuration file sshd_config can be used to control this. The following alternatives are possible:
This prevents connecting to forwarded ports from outside the server computer.
This allows anyone to connect to the forwarded ports. If the server is on the public Internet, anyone on the Internet can connect to the port.
This means that the client can specify an IP address from which connections to the port are allowed. The syntax for this is:
In this example, only connections from the IP address to port 8080 are allowed.
OpenSSH also allows the forwarded remote port to specified as 0. In this case, the server will dynamically allocate a port and report it to the client. When used with the option, the client will print the allocated port number to standard output.
Редактирование прав
Все, что нужно для разрешения проблем, связанных с правами в Linux.
sudo — выдает права суперпользователя. Используется перед любой командой, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Fedora, введем: sudo dnf update. При этом система запросит пароль администратора.
sudo su — на время превращает все вводимые в терминал команды в команды суперпользователя. Пригодится, если предстоит вносить много изменений в системные файлы, которые нельзя редактировать без соответствующих прав.
sudo !! — запускает предыдущую команду от имени администратора. Пригодится, если уже ввели команду, требующую прав суперпользователя, но забыли их затребовать. Не придется вводить весь текст заново. Достаточно сокращенной версии.
chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором опций, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.
chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий: chown имя учетной записи, которому надо передать права путь до файла, права на который нужно передать. На примере этого может выглядеть следующим образом: есть пользователь Timeweb, которому я хочу передать права на файл timeweb-file.txt с рабочего стола. Сделаю это командой:
chown Timeweb ~/Desktop/timeweb-file.txt
Ручной способ копирования
Данный способ подойдет в том случае если у вас нет ssh доступа к серверу. Придется вручную добавить содержание файла ключей на сервер. Для просмотра файла ключей используем cat:
cat ~/.ssh/id_rsa.pub
1 | cat~.sshid_rsa.pub |
Содержимое будет примерно таким:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0Xvh2xPff6SQ1BLzkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosiuS66+PujOO+xt2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7UASsmY095ywPsBo1XQ9PqhnN1YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ==demo@test |
Заходим на удаленную машину, любым доступным способом.
Вводим:
mkdir -p ~/.ssh
1 | mkdir-p~.ssh |
Данной командой мы проверяем на наличие папки, и если она отсутствует, то она будет создана.
Далее переходим к созданию или редактированию файла authorized_keys.
Создание данного файла и внесение в него значения ключей:
echo «значение_публичного_ключа» >> ~/.ssh/authorized_keys
1 | echo»значение_публичного_ключа»>>~.sshauthorized_keys |
Подставляем значение публичного ключа и нажимаем enter. Затем изменим права:
chmod -R go= ~/.ssh
1 | chmod-Rgo=~.ssh |
Если файл создается от имени пользователя root, то придется изменить владельца:
chown -R user:user ~/.ssh
1 | chown-Ruseruser~.ssh |
Вместо user подставляем имя пользователя в домашней папке которого создали файл ключей.
Процесс входа на удаленный сервер после копирования ключей будет выглядеть так:
ssh username@remote_host
1 | ssh username@remote_host |
Навигация и управление файловой системой
Команды, необходимые для перемещения и ориентирования в файловой системе сервера. А еще для перемещения, копирования и удаления файлов. В общем, все, что вы делали бы в файловом менеджере, но через терминал.
cd — отправляет вас в любую папку на выбор. Синтаксис: cd путь до нужной директории. Если хочется на рабочий стол, то пишем: cd ~/Desktop. Вернуться в предыдущую папку? cd-. Перепрыгнуть в home? Просто вводим: cd без аргументов.
ls — отображает директории и файлы вокруг вас. То есть в той папке, где вы находитесь на текущий момент. Но чтобы ею пользоваться, необязательно переходить в конкретную директорию. Ее можно указать заранее. Вот так:
ls ~/Desktop/papka-testovaya
pwd — укажет путь до папки тем, кто заблудился. Если вы находитесь в папке Документы, то вывод pwd будет выглядеть вот так /home/имя пользователя/Documents. И так для любого каталога, в котором вы окажетесь.
file — покажет, что собой представляет файл. Фишка утилиты в том, что она демонстрирует разную информацию для разных типов файлов. К примеру, может дать подробные EXIF-данные для фотографий, включая разрешение и битность изображения.
mv — изначально использовалась для того, чтобы перемещать файлы из одного места в другое. mv ~/Desktop/timeweb.html ~/Documents переносит HTML-документ Timeweb с рабочего стола в документы. Но пользователи приноровились использовать mv для смены имени файлов. mv ~/Desktop/timeweb.html timeweb-2.html оставляет документ на месте, но меняет его название.
cp — создает копию выбранного файла в другом каталоге. cp ~/Documents/timeweb-file.txt /home/Webmaster/Desktop копирует документ с названием timeweb-file.txt на рабочий стол того же пользователя.
dd — управляет разделами. С ее помощью можно делать копии разделов: dd if=/dev/sda of=/dev/sdb. Можно перемещать разделы. Удалять их без возможности восстановления: dd if=/dev/zero of=/dev/sdX (в качестве раздела для «уничтожения» тут указана флешка). Копирование разделов подразумевает их запись на сторонние носители. Например, запись iso-образов на внешние накопители: dd if=~/Desktop/fedora-14.6.iso of=/dev/sdX bs=4M. if здесь — это путь к образу, а of — путь к смонтированному разделу (флешке).
rm — удаляет папки и все, что сможет в них найти. «Уничтожает» все субдиректории, документы, картинки, медиа. Вообще все, без возможности восстановления. Синтаксис:
rm путь до каталога, который надо вычистить вместе со всеми «внутренностями»
mkdir — создает новую папку. Синтаксис: mkdir путь_до каталога,_где_нужно_создать_новую_директорию название_для_этой директории. Если надо сделать на рабочем столе папку Timeweb, то пишем:
mkdir ~/Desktop/Timeweb
rmdir — удаляет директории. Не имеет права трогать их содержимое, поэтому отзовется ошибкой, если в удаляемой папке найдутся еще какие-то элементы. Перед использованием rmdir объект надо очистить.
wget — скачивает файл из переданной ссылки. Больше ничего не умеет. Простой текстовый менеджер загрузок. Работает так – если мы хотим загрузить скриншот панели управления Timeweb с официального сайта, то введем в терминал: wget https://timeweb.com/upload/resize_cache/iblock/b56/400_400_2/xscreen_3.jpg.pagespeed.ic.O4a5jdlo5A.jpg
zip — архивирует один или несколько файлов один файл в формате .zip. Синтаксис: zip название архива.zip путь до файла, который надо упаковать. К примеру:
zip noviy-archive.zip /home/me/soderzhimoe-archiva.txt
unzip — вытаскивает содержимое архива наружу. Работает по тому же принципу: сначала команда, потом путь до архива, который надо распаковать. Еще можно добавить опцию -d, чтобы удалить файлы из архива по завершении распаковки.
find — ищет файлы и папки по всей файловой системе. Умеет находить их по названию и по типу, но это зависит от выставленных опций. find -type d -name Timeweb будет искать только директории с именем Timeweb.
mount — монтирует образ или раздел диска. Синтаксис:
mount путь до раздела, что нужно смонтировать
unmount — «демонтирует» образ или указанный раздел. Синтаксис:
unmount путь до раздела, что нужно отмонтировать
Local Forwarding
Local forwarding is used to forward a port from the client machine to the server machine. Basically, the SSH client listens for connections on a configured port, and when it receives a connection, it tunnels the connection to an SSH server. The server connects to a configurated destination port, possibly on a different machine than the SSH server.
Typical uses for local port forwarding include:
-
Tunneling sessions and file transfers through jump servers
-
Connecting to a service on an internal network from the outside
-
Connecting to a remote file share over the Internet
Quite a few organizations for all incoming SSH access through a single jump server. The server may be a standard Linux/Unix box, usually with some extra hardening, intrusion detection, and/or logging, or it may be a commercial jump server solution.
Many jump servers allow incoming port forwarding, once the connection has been authenticated. Such port forwarding is convenient, because it allows tech-savvy users to use internal resources quite transparently. For example, they may forward a port on their local machine to the corporate intranet web server, to an internal mail server’s IMAP port, to a local file server’s 445 and 139 ports, to a printer, to a version control repository, or to almost any other system on the internal network. Frequently, the port is tunneled to an SSH port on an internal machine.
In OpenSSH, local port forwarding is configured using the option:
This example opens a connection to the jump server, and forwards any connection to port 80 on the local machine to port 80 on .
By default, anyone (even on different machines) can connect to the specified port on the SSH client machine. However, this can be restricted to programs on the same host by supplying a bind address:
The option in the OpenSSH client configuration file can be used to configure forwarding without having to specify it on command line.
Enable SSH on Ubuntu
The SSH server is not installed by default on Ubuntu systems. To install and enable SSH on Ubuntu follow the steps found below:
1. Open the terminal either by using the CTRL+ALT+T keyboard shortcut or by running a search in Ubuntu Dash and selecting the Terminal Icon.
2. Before starting the installation process, check if an SSH server has already been installed on your computer. Use the following command:
If you see the SSH “Connection Refused” message, you will have to go through the SSH installation process.
3. To install SSH, first update the package repository cache with:
4. Now install the OpenSSH software package by entering:
If prompted, type in your password and press (yes) to permit the installation.
5. To verify the installation was successful and SSH is running use the command:
The confirmation message that you are looking for is:
This means you have installed and enabled SSH on your remote machine, which can now accept commands from your SSH client.
6. To return to the command line prompt enter .
Создать SSH туннель
Туннели обычно создают для перенаправления траффика. SSH tunnel это то же самое что и SSH port forwarding.
Допустим вы хотите направить траффик со своего localhost (127.0.0.1) на
удалённый
хост 192.168.0.2.
На
удалённом
хосте у вас есть пользователь с именем andrei и вы знаете его пароль.
Сперва нужно определиться с портами на локальном хосте и на удалённом.
Предположим, вы выбрали 9119 для локального и
9200 для
удаленного
хостов.
То есть вы хотите, чтобы всё, что идёт на localhost:9119 было перенаправлено на
192.168.0.2:9200
Выполните
ssh -L 9119:192.168.0.2:9200 andrei@192.168.0.2
The authenticity of host ‘192.168.0.2 (192.168.0.2)’ can’t be established.
ECDA …
…
andrei@192.168.0.2’s password:
Last login: Sun Jan 31 13:23:00 2021
Проверьте ip выполнив
ip a
Если вам нужен туннель с поддержкой графического интерфейса
X Window System
используйте флаг -X
ssh -X -L 9119:192.168.0.2:9200 andrei@192.168.0.2
Secure SSH configuration file
The “/etc/ssh/sshd_config” file is the system-wide configuration file for SSH which allows you to set different options to improve the security of an SSH server. The default configuration in the config file is very insecure, so you need to edit it first and set proper options to improve the security.
To edit the “/etc/ssh/sshd_config” file, run
Change SSH listening port
By default, SSH listens on port 22. Attackers use port scanners to see whether an SSH service is running or not. It is recommended to change the default port.
To change the default port to 2200, change:
to
Only use Protocol 2
Version 1 of the protocol contains security vulnerabilities. Protocol 2 is the default entry on Ubuntu.
Change the line shown below:
Limit users access
It is necessary to allow only specific users to log in to SSH. It can improve your security. By default, this option is not available in the SSH configuration file.
To allow “user1” and “user2,” add the following line:
To deny “baduser1” and “baduser2,” add the following line:
Disable root login
It is not necessary to log in as root via ssh over a network. Normal users can also use or to gain root level access. Most attackers will try to use root user to log in. This is a big security risk, so it is recommended to deny the root login.
To disable root login, change the line
to
Hide last login
You can hide who logged in last when a user logs in.
For this, change the line
to
Restrict the interface to log in
By default, ssh will listen on all network interfaces. If you want to allow an SSH connection to be accepted from specific IP addresses, you can change the line
to
Disable password uthentication
Using password authentication is a big security risk if your user uses a weak password. It is recommended to use “ssh keys.” An “ssh key” can contain over 600 random characters and be difficult to break.
For this, change the line
to
Disable .rhosts files
The .rhosts files specify which users can access the r-commands (rsh, rcp, rlogin, etc.) on the local machine without a password. By default an .rhosts file is disabled; if not, then change the lines as shown below.
Disable host-based authentication
SSH’s host-based authentication is more secure than .rhosts authentication. However, it is not recommended that hosts trust one another. By default, this option is disabled.
If not, then change the line shown below.
Set a login grace timeout
The “LoginGraceTime” specifies how long after a connection request the server will wait before disconnecting. It is recommended to reduce it to 60 seconds.
For this, change the line
to
Set maximum startup connections
Setting up a proper maximum number of concurrent connections to the SSH daemon can be helpful against a brute-force attack.
For this, change the line
to
Disable forwarding
The port forwarding technique is used by attackers to tunnel network connections through an SSH session to log into systems. It is recommend to disable this option.
For this, change the line
to
Log more information
By default, SSH logs everything. If you want to log more information like failed login attempts. you can change the value of this to “VERBOSE.”
For this, change the line
to
Disable empty passwords
It is necessary to deny users with empty passwords on your server. By default is disabled in Ubuntu.
If not, then change the line shown below.
Set idle timeout interval
By default, this options is not available in the SSH default configuration file. It is recommended to set a proper idle timeout to avoid an unattended ssh session.
For this, add the following lines.
Strict mode
This will prevent the use of insecure home directory and key file permissions. By default, this option is enabled.
If not, then change the following line.
Now save and exit the /etc/ssh/sshd_config file and restart the SSH server.
Как подключиться к серверу без пароля
Не всегда удобно каждый раз вводить пароль для входа на удаленное устройство. Комфортнее, когда вход выполняется автоматически и без лишних усилий. В PuTTY существует такой способ – использование авторизации по ключу SSH. Настроить его можно следующим образом:
- Для выполнения данной операции нам потребуется отдельная утилита под названием «PuTTYgen». Она автоматически устанавливается вместе с PuTTY, поэтому зайдем в меню «Пуск» и запустим ее оттуда.
- Далее перемещаемся в меню «Key» и устанавливаем значение «SSH-2 RSA key». После этого кликаем по кнопке «Generate key pair».
- Как только ключ будет сгенерирован, сохраним его в публичном и приватном варианте.
- Теперь перемещаемся в PuTTY и открываем раздел «Auth» — в него добавляем приватный ключ.
- Открываем раздел «Session» и сохраняем в нем пресет для подключения, как мы делали ранее. Затем подключаемся к серверу по своему адресу.
- Осталось подключиться к серверу и отправить на него открытый ключ. Для этого вставляем его в конец файла /root/.ssh/authorized_keys. Ключ мы можем скопировать напрямую из утилиты, в которой он был сгенерирован.
Готово! Теперь при повторном входе на сервер авторизация не потребуется. Главное – сохранить настройки сессии, чтобы не вводить ключ каждый раз.
Сегодня мы разобрали одну из важнейших тем, с которой сталкивается каждый, кто начинает изучать администрирование серверов. Использование PuTTY позволяет подключаться по протоколу SSH и удаленно работать с компьютером на операционной системе Linux. Такой способ позволяет легко администрировать устройство и всегда быть в курсе возникающих проблем. Надеемся, что наша статья была полезной, и у вас не осталось вопросов
Спасибо за внимание!
Настраиваем доступ по SSH
Часть 2.
Перед тем как начнём, давайте создадим нового пользователя с root правами.
Команда
adduser test
Укажем права пользователю test командой
usermod -a -G sudo test
Чтобы убедиться, что пользователь test был добавлен в группу sudo, можно выполнить следующую команду:
id test
Теперь настраим удаленный доступ к серверу по ssh (командная строка), как по локальной сети, так и по интернету
Установим ssh
sudo apt-get install openssh-server
После установки нам необходимо настроить безопасность соединения и непосредственный доступ.
Зайдем в файл с настройками
sudo nano /etc/ssh/sshd_config
По умолчанию, ssh использует порт 22. Заменим его на нестандартный, это повысит безопасность нашего доступа. Порт заменим например на 2200
При подключении по ssh, наш сервер потребует вместо пароля ключ RSA, а не пароль.
Что бы этого не произошло, в параметре RSAAuthentication и PubkeyAuthentication, вписываем «NO».
Так же запрещаем доступ пользователю ROOT, для этого нужно раскомментировать параметр
Authetication: и в параметре PermitRootLogin вписать «NO»
Теперь пропишем доступ пользователям
В строке AllowUsers прописываем пользователей через пробел в виде юзер@хост, т. е. указываем какой пользователь откуда может подключаться.
Можно использовать знак *
Пропишем пользователю test права доступа и разберёмся в них.
-
test@* — пользователь test может подключаться откуда угодно
test@192.168.0.* — пользователь test может подключаться только находясь в 192.168.0.0 подсети
test@192.168.0.104 — пользователь test может подключиться только с ip адреса 192.168.0.104
*@192.168.0.* — все пользователи могут подключаться находясь в 192.168.0.0 подсети
Так же можно запретить доступ определённым пользователям (например пользователю test2), для этого нужно вписать ниже
DenyUsers test2
Запускаем
sudo /etc/init.d/ssh start
Ssh мы настроили. Теперь откроем к нему доступ. Для этого откроем доступ к порту 2200.
В прошлой части мы устанавливали firewall командой arno-iptables-firewall, теперь нужно внести туда изменения.
По этому перенатроим его.
sudo dpkg-reconfigure arno-iptables-firewall
Запустилась настройка
Вписываем порт, который нужно открыть. Так же в этом окне можно вписать и другие порты, если они нуждаются в открытии.
В следующем окне, так же вписваем порт 2200.
Как только вписали порты, можно везде нажимать ENTER и перезагрузить Файрвол.
После этого порт ssh будет доступен из сети
Для повышения безопасности ssh соединения можно настраиваем утилиту denyhosts.
Утилита представляет собой python-скрипт, который анализирует файл /var/log/auth.log
на наличие записей о несанкционированных попытках входа на сервер по ssh и
добавляет ip-адреса, с которых осуществлялись эти попытки в файл /etc/hosts.deny, с которых запрещен вход по ssh.
Установим командой
sudo aptitude install denyhosts
Сразу после установки утилита просканирует файл /var/log/auth.log и добавит ip-адреса,
с которых осуществлялся подбор паролей, в /etc/hosts.deny. На сканирование потребуется время,
если в файле /var/log/auth.log уже много таких записей.
После установки нужно подправить конфигурационный файл
sudo nano /etc/denyhosts.conf
Скорректируем настройку PURGE_DENY на 3 часа. А то мы можем заблокировать доступ
самому себе, введя несколько раз неверный пароль.
PURGE_DENY = 3h
Ещё, для контроля, нужно указать адрес электронной почты для рассылки уведомлений
о неудачных попытках доступа к серверу:
Для того чтобы новые настройки вступили в силу, нужно перезапустить службу denyhosts:
sudo service denyhosts restart
P.S. Если вам понадобиться сменить пароль на учетной записи. Введите команду
passwd user — где user это имя пользователя
P.S.S. Если возникнут проблемы с кодирвкой, то покопайтесь в настройках клиентской программы shh
Самая популярная программа для работы по ssh, программа PuttY.
Схожие статьи
- Настраиваем на Ubuntu Dhcp и Dns сервера, а так же доступ в интернетНастраиваем доступ по SSHНастраиваем VPN PPPTPНастраиваем webminНастраиваем FTP на Ubuntu
Уважаемые посетители сайта, если вам нужна помощь в решении проблем, то оставляйте комментарий в форме, а не Вконтакте. Так я смогу быстре ответить на ваш вопрос
Если есть желание поблагодарить за помощь, просьба поддержать просмотрами видео на канале в YouTube
https://youtube.com/watch?v=videoseries
Или можете помочь проекту материально
Основные команды PuTTY
Как говорилось ранее, для использования удаленного компьютера нам необходимо вводить различный набор команд. Их огромное множество, но для первоначального изучения достаточно знать лишь их небольшую часть.
ls — предназначена для вывода файлов, содержит в себе набор команд:
- ls -la — выводит различные документы и показывает права доступа, включая имя создателя и владельца;
- ls -lha — также выводит файлы, но показывает размер файла в байтах;
- ls -lha | less — используется для постраничного просмотра документов.
cd — необходима для перемещения между директориями, например, cd перенаправляет пользователя в указанную папку, cd../ перемещает в верхний уровень, cd ~ открывает корневую папку.
echo — позволяет перемещать текст в файл. Например, если нам требуется создать новый текстовый документ или добавить текст в уже созданный файл, достаточно ввести «echo Привет, мир! >> new.txt».
sudo — наиболее используемая команда, означающая «SuperUser Do». Она позволяет выполнять любые команды от имени администратора.
df — дает возможность увидеть доступное дисковое пространство в каждом из разделов операционной системы. Синтаксис: df .
mv — используются для переименования файлов и перемещения их в другую директорию. Синтаксис: mv .
rm — если нужно удалить файлы или директорию целиком, то используйте эту команду. Синтаксис: rm .
cp — для копирования файлов и целых директорий воспользуйтесь этой строчкой. Синтаксис: cp .
mc — предназначена для запуска файлового менеджера Midnight Commander, который позволяет работать с файлами по FTP внутри консольного окна.
cat — наиболее популярная команда в Linux, позволяющая считывать данные из файлов и выводить их содержимое. Наиболее простой способ отображения содержимого в командной строке. Синтаксис: cat .
mkdir — позволяет создать одну или несколько директорий с указанным именем. Например, mkdir mdir1 mdir2 mdir3 добавит сразу 3 директории.
chmod — изменяет права доступа к файлам и каталогам. Синтаксис: chmod .
pwd — при первом запуске терминала мы оказываемся в домашнем каталоге пользователя. Если вдруг каталог был изменен, то проверить это можно с помощью данной команды.
touch — используется для создания любого типа файлов: от пустого txt до пустого zip. Синтаксис: touch .
man и —help — нужны для того, чтобы узнать информацию о команде и о том, как ее можно использовать (man). Например, «man cat» покажет доступную информацию о команде cat. Ввод имени команды и аргумента помогает показать, каким образом можно использовать команду, например, cd –help.
locate — предназначена для поиска файла в системе Linux.
Это была лишь небольшая часть команд, которые можно использовать при подключении по SSH. Если вы только начинаете изучать основы администрирования серверов, то этого списка будет достаточно.
Сгенерировать пару ключей
Первый шаг — это генерация пары ключей. Обычно это делается на клиентской машине.
Например, на вашем ноутбуке.
Основная команда ssh-keygen создаст 2048-битную пару RSA ключей. Для
большей надёжности можно добавить флаг -b 4096
Выполните
ssh-keygen -b 4096
Чтобы сгенерировать ключ в /home/$(whoami)/.ssh
или
sudo ssh-keygen -b 4096
Чтобы сгенерировать ключ в /home/root/.ssh
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Нужно придумать имя ключа.
Я назову ключ
andrei-key101
а сохранять буду в текущую директорию.
Enter file in which to save the key (/root/.ssh/id_rsa): andrei-key101
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Нужно два раза ввести пароль. Если он вам нужен. Обычно нет.
Your identification has been saved in andrei-key101
Your public key has been saved in andrei-key101.pub
The key fingerprint is:
SHA256:abcd/abcdefghijklmnopqrstuvwxyz1234567890ab root@urn-su
The key’s randomart image is:
+——-+
|=o oo++ |
|= oo o. = o |
|+ |
|Oo=o . . |
|B+.o S . |
|+o.o |
|+.0. . |
|o+= . E |
|+=oo. . . |
+———+
Ключи готовы. Я сохранил их в текущую директорию поэтому увижу их сделав ls
ls
andrei-key101 andrei-key101.pub
Важно помнить, что если вы генерируете ключ для другого пользователя нужно
позаботиться о правильных правах доступа к этому ключу.
Установка SSH в Ubuntu
Поскольку протокол SSH клиент для его управления является общепринятым стандартом, установить его можно при помощи короткой команды в терминале Ubuntu. для этого запустите сам терминал, нажав комбинацию кнопок на клавиатуре Ctrl + Alt + T, после чего примените команду sudo apt-get install ssh. После подготовки к скачиванию утилита запросит, хотите ли вы продолжить. переключите клавиатуру на русский язык и нажмите Д. На вашем компьютере с Ubuntu установка ssh будет завершена уже через пару секунд. Если вы желаете активировать автоматический запуск при включении системы, используйте для этого команду sudo systemctl enable sshd. соответственно, если потом вы пожелаете убрать службу из автоматического запуска, вам понадобится команда sudo systemctl disable sshd.
Теперь можно проверить, как всё работает. Этого достаточно попробовать подключиться к локальному SSH server: ssh localhost. Утилита обязательно запросит пароль суперпользователя, а также предложит добавить введённый адрес в список разрешённых. Если у вас всё работает, как положено, вы увидите небольшое сообщение, заканчивающиеся уведомление о дате последнего подключения к адресу.
Теперь можно подключаться к любому компьютеру в сети, если вы знаете его IP-адрес и имя пользователя. для этого в терминале вам нужно ввести команду следующего формата:
Например, если вы хотите подсоединиться к компьютеру Васи Пупкина с адресом 132.14.25.10, то команда будет выглядеть следующим образом:
Basic Syntax
To connect to a remote system using SSH, we’ll use the command. The most basic form of the command is:
The in this example is the IP address or domain name that you are trying to connect to.
This command assumes that your username on the remote system is the same as your username on your local system.
If your username is different on the remote system, you can specify it by using this syntax:
Once you have connected to the server, you may be asked to verify your identity by providing a password. Later, we will cover how to generate keys to use instead of passwords.
To exit the ssh session and return back into your local shell session, type: