Добавить в корзинуПозвонить
Найти в Дзене

Linux подключение по ssh

Подключение к Linux по SSH (Secure Shell) — это стандартный и безопасный способ удалённого доступа к командной строке Linux. Вот подробная инструкция по подключению, включая настройку, использование различных опций и решение распространенных проблем: I. Настройка SSH-сервера (на удалённом компьютере, к которому вы подключаетесь): II. Подключение к SSH-серверу (с клиентского компьютера): III. Настройка SSH-ключей (рекомендуется для безопасности): IV. Расширенные опции SSH: V. Решение распространенных проблем: VI. Безопасность SSH: Следуя этим инструкциям, вы сможете безопасно и эффективно подключаться к Linux системам по SSH.

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

I. Настройка SSH-сервера (на удалённом компьютере, к которому вы подключаетесь):

  1. Установка SSH-сервера:sudo apt update # Обновляем список пакетов (Debian/Ubuntu)
    sudo apt install openssh-server
    # Устанавливаем SSH-сервер (Debian/Ubuntu)

    sudo dnf update
    # Обновляем список пакетов (Fedora/CentOS/RHEL)
    sudo dnf install openssh-server
    # Устанавливаем SSH-сервер (Fedora/CentOS/RHEL)

    sudo pacman -Syu
    # Обновляем список пакетов (Arch Linux)
    sudo pacman -S openssh
    # Устанавливаем SSH-сервер (Arch Linux)
  2. Запуск и включение SSH-сервера:sudo systemctl start ssh # Запускаем SSH-сервер
    sudo systemctl enable ssh
    # Включаем автоматический запуск SSH-сервера при загрузке системы
  3. Настройка брандмауэра:
    Разрешите входящий трафик на порт 22 (стандартный порт SSH):sudo ufw allow 22 # Для UFW (Ubuntu)
    sudo ufw enable
    # Включаем UFW, если он еще не включен

    sudo firewall-cmd --add-port=22/tcp --permanent
    # Для Firewalld (Fedora/CentOS/RHEL)
    sudo firewall-cmd --reload
    # Перезагружаем Firewalld, чтобы применить изменения
    Если вы используете другой порт для SSH (не рекомендуется без необходимости), замените 22 на номер вашего порта.
  4. Конфигурация SSH-сервера (необязательно, но рекомендуется):
    Отредактируйте файл /etc/ssh/sshd_config (требуются права root):sudo nano /etc/ssh/sshd_config

    Рекомендуемые изменения:
    Измените порт SSH (если хотите):
    Port 2222 # Замените 2222 на любой другой порт (1024-65535)
    Важно: Если вы меняете порт, не забудьте обновить правила брандмауэра, чтобы разрешить трафик на новый порт.
    Отключите вход по паролю (рекомендуется использовать SSH-ключи):PasswordAuthentication no

    Разрешите вход только для определенных пользователей (добавьте или раскомментируйте строку):AllowUsers user1 user2 # Замените user1 и user2 на имена разрешенных пользователей

    Отключите вход для root (рекомендуется):PermitRootLogin no

    Перезапустите SSH-сервер для применения изменений:sudo systemctl restart ssh

II. Подключение к SSH-серверу (с клиентского компьютера):

  1. Откройте терминал (на Linux/macOS) или используйте SSH-клиент (на Windows):Linux/macOS: Используйте встроенную команду ssh.
    Windows: Используйте клиент SSH, такой как PuTTY (https://www.putty.org/) или встроенный клиент OpenSSH (доступен в Windows 10 и более поздних версиях). Чтобы использовать встроенный клиент, откройте Command Prompt или PowerShell.
  2. Подключитесь к SSH-серверу:
    С использованием пароля:
    ssh <имя_пользователя>@<IP_адрес_или_имя_хоста>
    Например:ssh john@192.168.1.100
    Вам будет предложено ввести пароль пользователя.
    С использованием SSH-ключей (рекомендуется):ssh <имя_пользователя>@<IP_адрес_или_имя_хоста>
    Если у вас настроены SSH-ключи и приватный ключ находится в стандартном месте (~/.ssh/id_rsa), SSH автоматически использует его для аутентификации.Если ваш приватный ключ находится в другом месте, укажите его с помощью опции -i:ssh -i /path/to/your/private_key <имя_пользователя>@<IP_адрес_или_имя_хоста>

III. Настройка SSH-ключей (рекомендуется для безопасности):

  1. Создайте пару ключей (на клиентском компьютере):ssh-keygen -t rsa -b 4096
    -t rsa: Указывает тип ключа (RSA).
    -b 4096: Указывает длину ключа (4096 бит — рекомендуется для безопасности).
    Вам будет предложено указать место для сохранения ключа (по умолчанию ~/.ssh/id_rsa) и ввести парольную фразу (passphrase) для защиты приватного ключа (рекомендуется).
  2. Скопируйте открытый ключ на удалённый компьютер:
    Используйте ssh-copy-id (самый простой способ):
    ssh-copy-id <имя_пользователя>@<IP_адрес_или_имя_хоста>
    Вам будет предложено ввести пароль пользователя на удалённом компьютере. Эта команда автоматически скопирует ваш открытый ключ (~/.ssh/id_rsa.pub) в файл ~/.ssh/authorized_keys на удалённом компьютере.
    Вручную (если ssh-copy-id не работает):
    Выведите содержимое вашего открытого ключа (на клиентском компьютере):cat ~/.ssh/id_rsa.pub

    Скопируйте содержимое открытого ключа.
    Подключитесь к удалённому компьютеру по SSH (с использованием пароля).
    Отредактируйте файл ~/.ssh/authorized_keys (если его нет, создайте его):mkdir -p ~/.ssh
    nano ~/.ssh/authorized_keys

    Вставьте содержимое открытого ключа в файл ~/.ssh/authorized_keys.
    Сохраните файл.
    Установите правильные права доступа к файлу ~/.ssh/authorized_keys:chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
  3. Проверьте подключение без пароля:ssh <имя_пользователя>@<IP_адрес_или_имя_хоста>
    Теперь вы должны подключиться к удалённому компьютеру без запроса пароля (если вы установили парольную фразу для приватного ключа, вам будет предложено ввести её).

IV. Расширенные опции SSH:

  • Перенаправление портов (Port Forwarding):
    Локальное перенаправление портов:
    Позволяет перенаправлять трафик с локального порта на удалённый хост.ssh -L <локальный_порт>:<удалённый_хост>:<удалённый_порт> <имя_пользователя>@<IP_адрес_или_имя_хоста>
    Пример:ssh -L 8080:localhost:80 john@192.168.1.100
    Эта команда перенаправляет трафик с локального порта 8080 на порт 80 на удалённом компьютере. Открыв http://localhost:8080 в браузере, вы увидите веб-сайт, работающий на удалённом компьютере.
    Удалённое перенаправление портов: Позволяет перенаправлять трафик с удалённого порта на локальный хост.ssh -R <удалённый_порт>:<локальный_хост>:<локальный_порт> <имя_пользователя>@<IP_адрес_или_имя_хоста>
    Пример:ssh -R 8080:localhost:80 john@192.168.1.100
    Эта команда перенаправляет трафик с порта 8080 на удалённом компьютере на порт 80 на локальном компьютере. Подключившись к порту 8080 на удалённом компьютере, вы увидите веб-сайт, работающий на вашем локальном компьютере.
  • X11 Forwarding:
    Позволяет запускать графические приложения на удалённом компьютере и отображать их на вашем локальном компьютере.ssh -X <имя_пользователя>@<IP_адрес_или_имя_хоста>
    илиssh -Y <имя_пользователя>@<IP_адрес_или_имя_хоста>
    -X: Более безопасный способ перенаправления X11, но может быть медленнее.
    -Y: Менее безопасный, но может быть быстрее.
    После подключения запустите графическое приложение на удалённом компьютере, и оно должно отобразиться на вашем локальном компьютере.
  • Использование файла конфигурации SSH (~/.ssh/config):
    Вы можете создать файл ~/.ssh/config на вашем локальном компьютере, чтобы сохранить настройки для разных SSH-соединений.
    Пример содержимого файла ~/.ssh/config:Host my_server
    HostName 192.168.1.100
    User john
    Port 2222
    IdentityFile ~/.ssh/my_private_key

    После создания файла ~/.ssh/config вы можете подключиться к серверу, просто указав имя хоста:ssh my_server

V. Решение распространенных проблем:

  • “Connection refused” (соединение отклонено):Убедитесь, что SSH-сервер установлен и запущен на удалённом компьютере.
    Убедитесь, что брандмауэр не блокирует порт SSH (22 или другой, который вы используете).
    Убедитесь, что IP-адрес или имя хоста указаны правильно.
  • “Permission denied (publickey,password)” (отказ в доступе (открытый ключ, пароль)):Если вы используете пароль, убедитесь, что вы вводите его правильно.
    Если вы используете SSH-ключи, убедитесь, что открытый ключ правильно скопирован в файл ~/.ssh/authorized_keys на удалённом компьютере.
    Убедитесь, что права доступа к файлу ~/.ssh/authorized_keys установлены правильно (600).
    Убедитесь, что права доступа к каталогу ~/.ssh установлены правильно (700).
  • Проблемы с X11 Forwarding:Убедитесь, что на удалённом компьютере установлен X-сервер.
    Убедитесь, что на локальном компьютере установлен X-сервер.
    Проверьте переменную окружения DISPLAY на удалённом компьютере.
    Попробуйте использовать опции -X или -Y при подключении по SSH.
  • Медленное соединение:Проверьте скорость вашего интернет-соединения.
    Используйте сжатие SSH (добавьте опцию -C к команде ssh).
    Измените алгоритм шифрования (используйте опцию -c).

VI. Безопасность SSH:

  • Используйте SSH-ключи вместо паролей.
  • Отключите вход для root.
  • Ограничьте доступ по IP-адресам.
  • Используйте fail2ban для защиты от перебора паролей.
  • Регулярно обновляйте SSH-сервер.

Следуя этим инструкциям, вы сможете безопасно и эффективно подключаться к Linux системам по SSH.