Установка и настройка SSH сервера: различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к навигации Перейти к поиску
Новая страница: «= Установка и настройка SSH сервера = == 1. Подготовка системы == * Войдите в систему под учет…»
 
Нет описания правки
Строка 11: Строка 11:


1. Обновите список пакетов:
1. Обновите список пакетов:
<code>
<code>sudo apt update</code>
sudo apt update
</code>


2. Установите OpenSSH сервер:
2. Установите OpenSSH сервер:
<code>
<code>sudo apt install openssh-server</code>
sudo apt install openssh-server
</code>


3. Запустите и включите автозапуск SSH:
3. Запустите и включите автозапуск SSH:
<code>
<code>sudo systemctl start ssh</code>
sudo systemctl start ssh
<code>sudo systemctl enable ssh</code>
sudo systemctl enable ssh
</code>


=== Для CentOS/RHEL/Fedora ===
=== Для CentOS/RHEL/Fedora ===


1. Установите OpenSSH сервер:
1. Установите OpenSSH сервер:
<code>
<code>sudo yum install openssh-server</code>
sudo yum install openssh-server
</code>
# или для новых версий
# или для новых версий
<code>
<code>sudo dnf install openssh-server</code>
sudo dnf install openssh-server
</code>


2. Запустите и включите автозапуск:
2. Запустите и включите автозапуск:
<code>
<code>sudo systemctl start sshd</code>
sudo systemctl start sshd
<code>sudo systemctl enable sshd</code>
sudo systemctl enable sshd
</code>


== 3. Проверка установки ==
== 3. Проверка установки ==


1. Проверьте статус SSH сервера:
1. Проверьте статус SSH сервера:
<code>
<code>sudo systemctl status ssh</code>
sudo systemctl status ssh
</code>


2. Проверьте, что SSH слушает на порту 22:
2. Проверьте, что SSH слушает на порту 22:
<code>
<code>sudo netstat -tlnp | grep :22</code>
sudo netstat -tlnp | grep :22
</code>


3. Проверьте версию OpenSSH:
3. Проверьте версию OpenSSH:
<code>
<code>ssh -V</code>
ssh -V
</code>


== 4. Базовая настройка SSH ==
== 4. Базовая настройка SSH ==
Строка 65: Строка 47:


1. Отредактируйте файл конфигурации SSH:
1. Отредактируйте файл конфигурации SSH:
<code>
<code>sudo nano /etc/ssh/sshd_config</code>
sudo nano /etc/ssh/sshd_config
</code>


2. Настройте основные параметры:
2. Настройте основные параметры:
<code>
<code>Port 22</code>
# Порт SSH
<code>Protocol 2</code>
Port 22
<code>ListenAddress 0.0.0.0</code>
 
<code>PermitRootLogin no</code>
# Протокол SSH
<code>PermitEmptyPasswords no</code>
Protocol 2
<code>MaxAuthTries 3</code>
 
<code>LoginGraceTime 60</code>
# Адрес для прослушивания
ListenAddress 0.0.0.0
 
# Разрешить root вход
PermitRootLogin no
 
# Разрешить пустые пароли
PermitEmptyPasswords no
 
# Максимальное количество попыток входа
MaxAuthTries 3
 
# Таймаут для аутентификации
LoginGraceTime 60
</code>


=== Настройка безопасности ===
=== Настройка безопасности ===


1. Добавьте дополнительные настройки безопасности:
1. Добавьте дополнительные настройки безопасности:
<code>
<code>X11Forwarding no</code>
# Отключить X11 forwarding
<code>AllowTcpForwarding no</code>
X11Forwarding no
<code>AllowUsers username1 username2</code>
 
<code>DenyUsers baduser</code>
# Отключить TCP forwarding
<code>PubkeyAuthentication yes</code>
AllowTcpForwarding no
<code>AuthorizedKeysFile .ssh/authorized_keys</code>
 
<code>PasswordAuthentication yes</code>
# Ограничить пользователей
AllowUsers username1 username2
 
# Запретить определенных пользователей
DenyUsers baduser
 
# Настройки ключей
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
 
# Отключить аутентификацию по паролю (после настройки ключей)
PasswordAuthentication yes
</code>


== 5. Настройка SSH ключей ==
== 5. Настройка SSH ключей ==
Строка 122: Строка 74:


1. Сгенерируйте пару ключей:
1. Сгенерируйте пару ключей:
<code>
<code>ssh-keygen -t rsa -b 4096 -C "your_email@example.com"</code>
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
</code>


2. Выберите место сохранения (по умолчанию ~/.ssh/id_rsa)
2. Выберите место сохранения (по умолчанию ~/.ssh/id_rsa)
Строка 132: Строка 82:


1. Скопируйте публичный ключ на сервер:
1. Скопируйте публичный ключ на сервер:
<code>
<code>ssh-copy-id username@server_ip</code>
ssh-copy-id username@server_ip
</code>


2. Или вручную:
2. Или вручную:
<code>
<code>cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"</code>
cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
</code>


=== Настройка прав доступа ===
=== Настройка прав доступа ===


1. Установите правильные права на файлы:
1. Установите правильные права на файлы:
<code>
<code>chmod 700 ~/.ssh</code>
chmod 700 ~/.ssh
<code>chmod 600 ~/.ssh/authorized_keys</code>
chmod 600 ~/.ssh/authorized_keys
<code>chmod 600 ~/.ssh/id_rsa</code>
chmod 600 ~/.ssh/id_rsa
<code>chmod 644 ~/.ssh/id_rsa.pub</code>
chmod 644 ~/.ssh/id_rsa.pub
</code>


== 6. Дополнительные настройки безопасности ==
== 6. Дополнительные настройки безопасности ==
Строка 156: Строка 100:


1. Измените порт в конфигурации:
1. Измените порт в конфигурации:
<code>
<code>Port 2222</code>
Port 2222
</code>


2. Обновите правила файрвола:
2. Обновите правила файрвола:
<code>
<code>sudo ufw allow 2222/tcp</code>
sudo ufw allow 2222/tcp
<code>sudo ufw deny 22/tcp</code>
sudo ufw deny 22/tcp
</code>


3. Перезапустите SSH:
3. Перезапустите SSH:
<code>
<code>sudo systemctl restart ssh</code>
sudo systemctl restart ssh
</code>


=== Настройка двухфакторной аутентификации ===
=== Настройка двухфакторной аутентификации ===


1. Установите Google Authenticator:
1. Установите Google Authenticator:
<code>
<code>sudo apt install libpam-google-authenticator</code>
sudo apt install libpam-google-authenticator
</code>


2. Настройте для пользователя:
2. Настройте для пользователя:
<code>
<code>google-authenticator</code>
google-authenticator
</code>


3. Добавьте в конфигурацию SSH:
3. Добавьте в конфигурацию SSH:
<code>
<code>ChallengeResponseAuthentication yes</code>
# В /etc/ssh/sshd_config
<code>UsePAM yes</code>
ChallengeResponseAuthentication yes
UsePAM yes
</code>


4. Настройте PAM:
4. Настройте PAM:
<code>
<code>sudo nano /etc/pam.d/sshd</code>
sudo nano /etc/pam.d/sshd
</code>


5. Добавьте строку:
5. Добавьте строку:
<code>
<code>auth required pam_google_authenticator.so</code>
auth required pam_google_authenticator.so
</code>


=== Настройка fail2ban для SSH ===
=== Настройка fail2ban для SSH ===


1. Установите fail2ban:
1. Установите fail2ban:
<code>
<code>sudo apt install fail2ban</code>
sudo apt install fail2ban
</code>


2. Создайте конфигурацию для SSH:
2. Создайте конфигурацию для SSH:
<code>
<code>sudo nano /etc/fail2ban/jail.local</code>
sudo nano /etc/fail2ban/jail.local
</code>


3. Добавьте настройки:
3. Добавьте настройки:
<code>
<code>[sshd]</code>
[sshd]
<code>enabled = true</code>
enabled = true
<code>port = ssh</code>
port = ssh
<code>logpath = /var/log/auth.log</code>
logpath = /var/log/auth.log
<code>maxretry = 3</code>
maxretry = 3
<code>bantime = 3600</code>
bantime = 3600
</code>


4. Запустите fail2ban:
4. Запустите fail2ban:
<code>
<code>sudo systemctl start fail2ban</code>
sudo systemctl start fail2ban
<code>sudo systemctl enable fail2ban</code>
sudo systemctl enable fail2ban
</code>


== 7. Настройка для конкретных случаев ==
== 7. Настройка для конкретных случаев ==
Строка 233: Строка 152:


1. Разрешите только определенным пользователям:
1. Разрешите только определенным пользователям:
<code>
<code>AllowUsers webadmin deployer</code>
AllowUsers webadmin deployer
</code>


2. Настройте ограничения по времени:
2. Настройте ограничения по времени:
<code>
<code>Match User webadmin</code>
# В /etc/ssh/sshd_config
<code>AllowUsers webadmin</code>
Match User webadmin
<code>X11Forwarding no</code>
    AllowUsers webadmin
<code>AllowTcpForwarding no</code>
    X11Forwarding no
    AllowTcpForwarding no
</code>


=== Настройка для разработчиков ===
=== Настройка для разработчиков ===


1. Разрешите порт forwarding:
1. Разрешите порт forwarding:
<code>
<code>AllowTcpForwarding yes</code>
AllowTcpForwarding yes
<code>GatewayPorts yes</code>
GatewayPorts yes
</code>


2. Настройте SSH туннели:
2. Настройте SSH туннели:
<code>
<code>ssh -L 8080:localhost:80 username@server_ip</code>
# Создание туннеля
<code>ssh -R 8080:localhost:80 username@server_ip</code>
ssh -L 8080:localhost:80 username@server_ip
 
# Обратный туннель
ssh -R 8080:localhost:80 username@server_ip
</code>


=== Настройка для резервного копирования ===
=== Настройка для резервного копирования ===


1. Создайте пользователя для бэкапов:
1. Создайте пользователя для бэкапов:
<code>
<code>sudo useradd -m -s /bin/bash backupuser</code>
sudo useradd -m -s /bin/bash backupuser
</code>


2. Настройте ограниченный доступ:
2. Настройте ограниченный доступ:
<code>
<code>Match User backupuser</code>
# В /etc/ssh/sshd_config
<code>AllowUsers backupuser</code>
Match User backupuser
<code>ForceCommand /usr/local/bin/backup-script.sh</code>
    AllowUsers backupuser
<code>X11Forwarding no</code>
    ForceCommand /usr/local/bin/backup-script.sh
<code>AllowTcpForwarding no</code>
    X11Forwarding no
    AllowTcpForwarding no
</code>


== 8. Мониторинг и логирование ==
== 8. Мониторинг и логирование ==
Строка 285: Строка 187:


1. Включите подробное логирование:
1. Включите подробное логирование:
<code>
<code>LogLevel VERBOSE</code>
# В /etc/ssh/sshd_config
<code>SyslogFacility AUTH</code>
LogLevel VERBOSE
SyslogFacility AUTH
</code>


2. Настройте ротацию логов:
2. Настройте ротацию логов:
<code>
<code>sudo nano /etc/logrotate.d/ssh</code>
sudo nano /etc/logrotate.d/ssh
</code>


3. Добавьте конфигурацию:
3. Добавьте конфигурацию:
<code>
<code>/var/log/auth.log {</code>
/var/log/auth.log {
<code>weekly</code>
    weekly
<code>missingok</code>
    missingok
<code>rotate 4</code>
    rotate 4
<code>compress</code>
    compress
<code>delaycompress</code>
    delaycompress
<code>notifempty</code>
    notifempty
<code>create 640 root adm</code>
    create 640 root adm
<code>}</code>
}
</code>


=== Мониторинг подключений ===
=== Мониторинг подключений ===


1. Просмотрите активные SSH сессии:
1. Просмотрите активные SSH сессии:
<code>
<code>who</code>
who
<code>w</code>
w
</code>


2. Просмотрите историю входов:
2. Просмотрите историю входов:
<code>
<code>last</code>
last
<code>lastb</code>
lastb
</code>


3. Просмотрите логи SSH:
3. Просмотрите логи SSH:
<code>
<code>sudo tail -f /var/log/auth.log | grep sshd</code>
sudo tail -f /var/log/auth.log | grep sshd
</code>


=== Создание скрипта мониторинга ===
=== Создание скрипта мониторинга ===


1. Создайте скрипт мониторинга:
1. Создайте скрипт мониторинга:
<code>
<code>sudo nano /usr/local/bin/ssh-monitor.sh</code>
sudo nano /usr/local/bin/ssh-monitor.sh
</code>


2. Добавьте содержимое:
2. Добавьте содержимое:
<code>
<code>echo "=== SSH Connections ==="</code>
#!/bin/bash
<code>who</code>
 
<code>echo "=== Failed Login Attempts ==="</code>
echo "=== SSH Connections ==="
<code>sudo grep "Failed password" /var/log/auth.log | tail -10</code>
who
<code>echo "=== Recent SSH Logins ==="</code>
 
<code>sudo grep "sshd" /var/log/auth.log | tail -10</code>
echo "=== Failed Login Attempts ==="
sudo grep "Failed password" /var/log/auth.log | tail -10
 
echo "=== Recent SSH Logins ==="
sudo grep "sshd" /var/log/auth.log | tail -10
</code>


3. Сделайте скрипт исполняемым:
3. Сделайте скрипт исполняемым:
<code>
<code>sudo chmod +x /usr/local/bin/ssh-monitor.sh</code>
sudo chmod +x /usr/local/bin/ssh-monitor.sh
</code>


== 9. Управление SSH сервером ==
== 9. Управление SSH сервером ==
Строка 359: Строка 238:


* '''Запуск SSH''':
* '''Запуск SSH''':
<code>
<code>sudo systemctl start ssh</code>
sudo systemctl start ssh
</code>


* '''Остановка SSH''':
* '''Остановка SSH''':
<code>
<code>sudo systemctl stop ssh</code>
sudo systemctl stop ssh
</code>


* '''Перезапуск SSH''':
* '''Перезапуск SSH''':
<code>
<code>sudo systemctl restart ssh</code>
sudo systemctl restart ssh
</code>


* '''Перезагрузка конфигурации''':
* '''Перезагрузка конфигурации''':
<code>
<code>sudo systemctl reload ssh</code>
sudo systemctl reload ssh
</code>


* '''Проверка статуса''':
* '''Проверка статуса''':
<code>
<code>sudo systemctl status ssh</code>
sudo systemctl status ssh
</code>


* '''Проверка конфигурации''':
* '''Проверка конфигурации''':
<code>
<code>sudo sshd -t</code>
sudo sshd -t
</code>


=== Управление пользователями ===
=== Управление пользователями ===


1. Добавьте пользователя в группу ssh:
1. Добавьте пользователя в группу ssh:
<code>
<code>sudo usermod -aG ssh username</code>
sudo usermod -aG ssh username
</code>


2. Заблокируйте пользователя:
2. Заблокируйте пользователя:
<code>
<code>sudo usermod -L username</code>
sudo usermod -L username
</code>


3. Разблокируйте пользователя:
3. Разблокируйте пользователя:
<code>
<code>sudo usermod -U username</code>
sudo usermod -U username
</code>


== 10. Устранение неполадок ==
== 10. Устранение неполадок ==
Строка 425: Строка 286:


1. Подключитесь с подробным выводом:
1. Подключитесь с подробным выводом:
<code>
<code>ssh -v username@server_ip</code>
ssh -v username@server_ip
</code>


2. Проверьте сетевую связность:
2. Проверьте сетевую связность:
<code>
<code>ping server_ip</code>
ping server_ip
<code>telnet server_ip 22</code>
telnet server_ip 22
</code>


3. Проверьте DNS:
3. Проверьте DNS:
<code>
<code>nslookup server_ip</code>
nslookup server_ip
</code>


== 11. Дополнительные настройки ==
== 11. Дополнительные настройки ==
Строка 445: Строка 300:


1. Создайте конфигурацию SSH клиента:
1. Создайте конфигурацию SSH клиента:
<code>
<code>nano ~/.ssh/config</code>
nano ~/.ssh/config
</code>


2. Добавьте настройки:
2. Добавьте настройки:
<code>
<code>Host myserver</code>
Host myserver
<code>HostName server_ip</code>
    HostName server_ip
<code>Port 22</code>
    Port 22
<code>User username</code>
    User username
<code>IdentityFile ~/.ssh/id_rsa</code>
    IdentityFile ~/.ssh/id_rsa
<code>ServerAliveInterval 60</code>
    ServerAliveInterval 60
<code>ServerAliveCountMax 3</code>
    ServerAliveCountMax 3
</code>


=== Настройка SSH агента ===
=== Настройка SSH агента ===


1. Запустите SSH агент:
1. Запустите SSH агент:
<code>
<code>eval "$(ssh-agent -s)"</code>
eval "$(ssh-agent -s)"
</code>


2. Добавьте ключ в агент:
2. Добавьте ключ в агент:
<code>
<code>ssh-add ~/.ssh/id_rsa</code>
ssh-add ~/.ssh/id_rsa
</code>


3. Настройте автозапуск агента:
3. Настройте автозапуск агента:
<code>
<code>echo 'eval "$(ssh-agent -s)"' >> ~/.bashrc</code>
echo 'eval "$(ssh-agent -s)"' >> ~/.bashrc
<code>echo 'ssh-add ~/.ssh/id_rsa' >> ~/.bashrc</code>
echo 'ssh-add ~/.ssh/id_rsa' >> ~/.bashrc
</code>


=== Настройка SSH туннелей ===
=== Настройка SSH туннелей ===


1. Создайте туннель для базы данных:
1. Создайте туннель для базы данных:
<code>
<code>ssh -L 3306:localhost:3306 username@server_ip</code>
ssh -L 3306:localhost:3306 username@server_ip
</code>


2. Создайте SOCKS прокси:
2. Создайте SOCKS прокси:
<code>
<code>ssh -D 8080 username@server_ip</code>
ssh -D 8080 username@server_ip
</code>


3. Настройте автоматический туннель:
3. Настройте автоматический туннель:
<code>
<code>Host tunnel</code>
# В ~/.ssh/config
<code>HostName server_ip</code>
Host tunnel
<code>LocalForward 3306 localhost:3306</code>
    HostName server_ip
<code>LocalForward 8080 localhost:80</code>
    LocalForward 3306 localhost:3306
    LocalForward 8080 localhost:80
</code>


== 12. Безопасность и рекомендации ==
== 12. Безопасность и рекомендации ==
Строка 504: Строка 342:


1. '''Регулярно обновляйте SSH''':
1. '''Регулярно обновляйте SSH''':
<code>
<code>sudo apt update && sudo apt upgrade openssh-server</code>
sudo apt update && sudo apt upgrade openssh-server
</code>


2. '''Используйте сильные пароли или ключи'''
2. '''Используйте сильные пароли или ключи'''
Строка 517: Строка 353:


1. Проверьте конфигурацию на уязвимости:
1. Проверьте конфигурацию на уязвимости:
<code>
<code>sudo ssh-audit server_ip</code>
sudo ssh-audit server_ip
</code>


2. Проверьте версию OpenSSH:
2. Проверьте версию OpenSSH:
<code>
<code>ssh -V</code>
ssh -V
</code>


3. Проверьте поддерживаемые алгоритмы:
3. Проверьте поддерживаемые алгоритмы:
<code>
<code>ssh -Q cipher</code>
ssh -Q cipher
<code>ssh -Q mac</code>
ssh -Q mac
<code>ssh -Q kex</code>
ssh -Q kex
</code>


== Заключение ==
== Заключение ==

Версия от 19:57, 14 октября 2025

Установка и настройка SSH сервера

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть физический доступ к серверу (на случай блокировки SSH).

2. Установка SSH сервера

Для Ubuntu/Debian

1. Обновите список пакетов: sudo apt update

2. Установите OpenSSH сервер: sudo apt install openssh-server

3. Запустите и включите автозапуск SSH: sudo systemctl start ssh sudo systemctl enable ssh

Для CentOS/RHEL/Fedora

1. Установите OpenSSH сервер: sudo yum install openssh-server

  1. или для новых версий

sudo dnf install openssh-server

2. Запустите и включите автозапуск: sudo systemctl start sshd sudo systemctl enable sshd

3. Проверка установки

1. Проверьте статус SSH сервера: sudo systemctl status ssh

2. Проверьте, что SSH слушает на порту 22: sudo netstat -tlnp | grep :22

3. Проверьте версию OpenSSH: ssh -V

4. Базовая настройка SSH

Основная конфигурация

1. Отредактируйте файл конфигурации SSH: sudo nano /etc/ssh/sshd_config

2. Настройте основные параметры: Port 22 Protocol 2 ListenAddress 0.0.0.0 PermitRootLogin no PermitEmptyPasswords no MaxAuthTries 3 LoginGraceTime 60

Настройка безопасности

1. Добавьте дополнительные настройки безопасности: X11Forwarding no AllowTcpForwarding no AllowUsers username1 username2 DenyUsers baduser PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes

5. Настройка SSH ключей

Генерация SSH ключей на клиенте

1. Сгенерируйте пару ключей: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

2. Выберите место сохранения (по умолчанию ~/.ssh/id_rsa) 3. Введите пароль для ключа (рекомендуется)

Копирование ключа на сервер

1. Скопируйте публичный ключ на сервер: ssh-copy-id username@server_ip

2. Или вручную: cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

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

1. Установите правильные права на файлы: chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub

6. Дополнительные настройки безопасности

Изменение порта SSH

1. Измените порт в конфигурации: Port 2222

2. Обновите правила файрвола: sudo ufw allow 2222/tcp sudo ufw deny 22/tcp

3. Перезапустите SSH: sudo systemctl restart ssh

Настройка двухфакторной аутентификации

1. Установите Google Authenticator: sudo apt install libpam-google-authenticator

2. Настройте для пользователя: google-authenticator

3. Добавьте в конфигурацию SSH: ChallengeResponseAuthentication yes UsePAM yes

4. Настройте PAM: sudo nano /etc/pam.d/sshd

5. Добавьте строку: auth required pam_google_authenticator.so

Настройка fail2ban для SSH

1. Установите fail2ban: sudo apt install fail2ban

2. Создайте конфигурацию для SSH: sudo nano /etc/fail2ban/jail.local

3. Добавьте настройки: [sshd] enabled = true port = ssh logpath = /var/log/auth.log maxretry = 3 bantime = 3600

4. Запустите fail2ban: sudo systemctl start fail2ban sudo systemctl enable fail2ban

7. Настройка для конкретных случаев

Настройка для веб-сервера

1. Разрешите только определенным пользователям: AllowUsers webadmin deployer

2. Настройте ограничения по времени: Match User webadmin AllowUsers webadmin X11Forwarding no AllowTcpForwarding no

Настройка для разработчиков

1. Разрешите порт forwarding: AllowTcpForwarding yes GatewayPorts yes

2. Настройте SSH туннели: ssh -L 8080:localhost:80 username@server_ip ssh -R 8080:localhost:80 username@server_ip

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

1. Создайте пользователя для бэкапов: sudo useradd -m -s /bin/bash backupuser

2. Настройте ограниченный доступ: Match User backupuser AllowUsers backupuser ForceCommand /usr/local/bin/backup-script.sh X11Forwarding no AllowTcpForwarding no

8. Мониторинг и логирование

Настройка логирования

1. Включите подробное логирование: LogLevel VERBOSE SyslogFacility AUTH

2. Настройте ротацию логов: sudo nano /etc/logrotate.d/ssh

3. Добавьте конфигурацию: /var/log/auth.log { weekly missingok rotate 4 compress delaycompress notifempty create 640 root adm }

Мониторинг подключений

1. Просмотрите активные SSH сессии: who w

2. Просмотрите историю входов: last lastb

3. Просмотрите логи SSH: sudo tail -f /var/log/auth.log | grep sshd

Создание скрипта мониторинга

1. Создайте скрипт мониторинга: sudo nano /usr/local/bin/ssh-monitor.sh

2. Добавьте содержимое: echo "=== SSH Connections ===" who echo "=== Failed Login Attempts ===" sudo grep "Failed password" /var/log/auth.log | tail -10 echo "=== Recent SSH Logins ===" sudo grep "sshd" /var/log/auth.log | tail -10

3. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/ssh-monitor.sh

9. Управление SSH сервером

Основные команды управления

  • Запуск SSH:

sudo systemctl start ssh

  • Остановка SSH:

sudo systemctl stop ssh

  • Перезапуск SSH:

sudo systemctl restart ssh

  • Перезагрузка конфигурации:

sudo systemctl reload ssh

  • Проверка статуса:

sudo systemctl status ssh

  • Проверка конфигурации:

sudo sshd -t

Управление пользователями

1. Добавьте пользователя в группу ssh: sudo usermod -aG ssh username

2. Заблокируйте пользователя: sudo usermod -L username

3. Разблокируйте пользователя: sudo usermod -U username

10. Устранение неполадок

Частые проблемы

1. SSH не запускается:

  • Проверьте конфигурацию: sudo sshd -t
  • Проверьте логи: sudo journalctl -u ssh

2. Не могу подключиться по SSH:

  • Проверьте статус сервиса: sudo systemctl status ssh
  • Проверьте файрвол: sudo ufw status
  • Проверьте порт: sudo netstat -tlnp | grep :22

3. Ошибка "Permission denied":

  • Проверьте права на ключи: ls -la ~/.ssh/
  • Проверьте конфигурацию SSH: sudo nano /etc/ssh/sshd_config

Диагностика подключения

1. Подключитесь с подробным выводом: ssh -v username@server_ip

2. Проверьте сетевую связность: ping server_ip telnet server_ip 22

3. Проверьте DNS: nslookup server_ip

11. Дополнительные настройки

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

1. Создайте конфигурацию SSH клиента: nano ~/.ssh/config

2. Добавьте настройки: Host myserver HostName server_ip Port 22 User username IdentityFile ~/.ssh/id_rsa ServerAliveInterval 60 ServerAliveCountMax 3

Настройка SSH агента

1. Запустите SSH агент: eval "$(ssh-agent -s)"

2. Добавьте ключ в агент: ssh-add ~/.ssh/id_rsa

3. Настройте автозапуск агента: echo 'eval "$(ssh-agent -s)"' >> ~/.bashrc echo 'ssh-add ~/.ssh/id_rsa' >> ~/.bashrc

Настройка SSH туннелей

1. Создайте туннель для базы данных: ssh -L 3306:localhost:3306 username@server_ip

2. Создайте SOCKS прокси: ssh -D 8080 username@server_ip

3. Настройте автоматический туннель: Host tunnel HostName server_ip LocalForward 3306 localhost:3306 LocalForward 8080 localhost:80

12. Безопасность и рекомендации

Рекомендации по безопасности

1. Регулярно обновляйте SSH: sudo apt update && sudo apt upgrade openssh-server

2. Используйте сильные пароли или ключи 3. Отключите root вход 4. Измените стандартный порт 5. Настройте fail2ban 6. Используйте двухфакторную аутентификацию

Аудит безопасности

1. Проверьте конфигурацию на уязвимости: sudo ssh-audit server_ip

2. Проверьте версию OpenSSH: ssh -V

3. Проверьте поддерживаемые алгоритмы: ssh -Q cipher ssh -Q mac ssh -Q kex

Заключение

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

Для размещения ваших проектов с настроенным SSH на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой SSH и обеспечением безопасности вашего сервера!