KirMol Wiki

Добро пожаловать в KirMol Wiki

Инструменты пользователя

Инструменты сайта


linux:network:ssh

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

linux:network:ssh [2026/10/03 10:49] – создано Кирилл Молчановlinux:network:ssh [2026/10/03 10:49] (текущий) – внешнее изменение (Дата неизвестна) 127.0.0.1
Строка 1: Строка 1:
 +====== OpenSSH ======
  
 +----
 +
 +===== О OpenSSH =====
 +
 +OpenSSH (Open Secure Shell - Открытая безопасная оболочка) - Набор программ, предоставляющих шифрование сеансов связи по компьютерным сетям с использованием протокола SSH.
 +
 +===== Установка OpenSSH =====
 +
 +Устанавливаем OpenSSH:
 +<code bash>
 +sudo apt install openssh-client openssh-server openssh-sftp-server
 +</code>
 +
 +===== Подключение по SSH =====
 +
 +Подключиться к серверу:
 +<code bash>
 +ssh user@host
 +</code>
 +
 +  * **user** - имя пользователя на удаленном сервере
 +  * **host** - IP-адрес или доменное имя удаленного сервера
 +
 +Подключиться к серверу по нестандартному порту, используем опцию **-p**:
 +<code bash>
 +ssh -p 0000 user@host
 +Или
 +ssh user@host -p 0000
 +</code>
 +
 +===== Копирование файлов и каталогов через SSH =====
 +
 +==== С локального ПК на удалённый сервер ====
 +
 +Скопировать файл:
 +<code bash>
 +scp файл.txt user@host:/путь/к/каталогу
 +</code>
 +
 +Скопировать каталог, используем опцию **-r**:
 +<code bash>
 +scp -r каталог user@host:/путь/к/каталогу
 +</code>
 +
 +Скопировать файл по нестандартному порту, используем опцию **-P**:
 +<code bash>
 +scp -P 0000 файл.txt user@host:/путь/к/каталогу
 +</code>
 +
 +Скопировать каталог по нестандартному порту, используем опции **-P** **-r**:
 +<code bash>
 +scp -P 0000 -r каталог user@host:/путь/к/каталогу
 +</code>
 +
 +==== С удалённого сервера на локальный ПК ====
 +
 +Скопировать файл:
 +<code bash>
 +scp user@host:/путь/к/файлу.txt /локальный/каталог
 +</code>
 +
 +Скопировать каталог, используем опцию **-r**:
 +<code bash>
 +scp -r user@host:/путь/к/каталогу /локальный/каталог
 +</code>
 +
 +Скопировать файл по нестандартному порту, используем опцию **-P**:
 +<code bash>
 +scp -P 0000 user@host:/путь/к/файлу.txt /локальный/каталог
 +</code>
 +
 +Скопировать каталог по нестандартному порту, используем опции **-P** **-r**:
 +<code bash>
 +scp -P 0000 -r user@host:/путь/к/каталогу /локальный/каталог
 +</code>
 +
 +==== С одного сервера на другой ====
 +
 +Скопировать файл:
 +<code bash>
 +scp user1@host:/путь/к/файлу.txt user2@host:/сервер2/каталог
 +</code>
 +
 +Скопировать каталог, используем опцию **-r**:
 +<code bash>
 +scp -r user1@host:/путь/к/каталогу user2@host:/сервер2/каталог
 +</code>
 +
 +Скопировать файл по нестандартному порту, используем опцию **-P**:
 +<code bash>
 +scp -P 0000 user1@host:/путь/к/файлу.txt user2@host:/сервер2/каталог
 +</code>
 +
 +Скопировать каталог по нестандартному порту, используем опции **-P** **-r**:
 +<code bash>
 +scp -P 0000 -r user1@host:/путь/к/каталогу user2@host:/сервер2/каталог
 +</code>
 +
 +=== Важные нюансы ===
 +
 +Авторизация: \\
 +При выполнении команды система запросит пароль сначала для первого сервера, а затем для второго.
 +
 +Как передаются данные? \\
 +Данные будут идти по цепочке: Сервер А ➔ Ваш компьютер (как посредник) ➔ Сервер Б.
 +
 +===== Выполнение команд без входа в интерактивную сессию =====
 +
 +Выполнить команду(ы):
 +<code bash>
 +ssh user@host "ls -lh"
 +ssh user@host "free -mh"
 +</code>
 +
 +===== Настройка OpenSSH =====
 +
 +Настраиваем конфиг **sshd_config**:
 +<code bash>
 +sudo nano /etc/ssh/sshd_config
 +</code>
 +
 +==== Меняем стандартный порт на свой ====
 +
 +Находим строку **#Port 22**:
 +
 +Раскомментируем строку **#Port 22**. Где **Port 22** меняем на свой.
 +
 +Пример: **Port 0000**.
 +
 +Обращаем внимание: Если включён Межсетевой экран, разрешите порт для подключения
 +<code bash>
 +sudo ufw allow 0000
 +</code>
 +
 +==== Запрет входа по SSH для пользователя Root ====
 +
 +Найдите строку **PermitRootLogin**.
 +
 +Раскомментируйте строку **PermitRootLogin yes** (если она закомментирована)
 +
 +Измените её значение с **yes** на **no**.
 +
 +==== Максимальное количество открытых сессий для SSH ====
 +
 +Найдите строку **MaxSessions**.
 +
 +Раскомментируйте строку **MaxSessions 10** (если она закомментирована)
 +
 +Измените её значение с **10** на значение, которое вам нужно. К примеру на **2**.
 +
 +==== Максимальное количество попыток ввода пароля за одну сессию ====
 +
 +Найдите строку **MaxAuthTries**.
 +
 +Раскомментируйте строку **MaxAuthTries 6** (если она закомментирована)
 +
 +Измените её значение с **6** на значение, которое вам нужно. К примеру на **2**.
 +
 +==== Указать время ввода пароля для SSH ====
 +
 +Время, в течение которого пользователь должен успеть успешно авторизоваться на сервере.
 +
 +Найдите строку **LoginGraceTime**.
 +
 +Раскомментируйте строку **LoginGraceTime 2m** (если она закомментирована)
 +
 +Измените её значение с **2m** на значение, которое вам нужно. К примеру на **1m** или **30s**.
 +
 +==== Запрет входа по паролю ====
 +
 +Если вы используйте **SSH-ключи** для авторизации, то вход по паролю можно отключить.
 +
 +Найдите строку **PasswordAuthentication**.
 +
 +Измените её значение с **yes** на **no**.
 +
 +Сохраняем файл.
 +
 +Перезагружаем SSH:
 +<code bash>
 +sudo systemctl restart sshd
 +</code>
 +
 +Подключаемся:
 +<code bash>
 +ssh root@localhost -p 0000
 +</code>
 +
 +===== Генерация SSH ключей =====
 +
 +  * [[..:commands:ssh-keygen|Команда ssh-keygen]]
 +  * [[..:commands:ssh-copy-id|Команда ssh-copy-id]]