macOS

Как настроить SSH на macOS: пошаговое руководство для начинающих

Это руководство поможет вам настроить SSH на macOS для удалённого доступа. Вы научитесь создавать ключи, настраивать подключения и диагностировать ошибки.

Обновлено 15 февраля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:macOS 12 (Monterey) и выше

Введение / Зачем это нужно

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

Требования / Подготовка

Перед началом убедитесь, что:

  • У вас есть доступ к macOS (версия 12 Monterey или новее).
  • Вы имеете базовые знания о использовании Терминала (Terminal).
  • У вас есть учётные данные (имя пользователя и хост или IP-адрес) для удалённого сервера, к которому хотите подключиться.
  • Сервер должен иметь запущенный SSH-демон (обычно порт 22) и разрешать подключения по вашему IP (если настроен фаервол).
  • Для генерации ключей требуется свободное место на диске (несколько килобайт).

Если вы подключаетесь к собственному серверу, убедитесь, что SSH установлен и настроен на стороне сервера (например, на Ubuntu: sudo apt install openssh-server).

Шаг 1: Проверка установки SSH

macOS поставляется с предустановленным клиентом OpenSSH. Чтобы убедиться, что он доступен, откройте Терминал (через Spotlight или Finder → Программы → Утилиты) и выполните:

ssh -V

Ожидаемый вывод: OpenSSH_x.x.x, ... (где x.x.x — версия). Если команда не найдена, возможно, SSH удалён или повреждён; в этом случае может потребоваться переустановка macOS или установка через Homebrew: brew install openssh.

💡 Совет: Для быстрого доступа к Терминалу используйте сочетание клавиш Cmd + Пробел, начните вводить "Терминал" и нажмите Enter.

Шаг 2: Генерация SSH ключей

Для безопасного подключения без пароля рекомендуется использовать аутентификацию по ключу. Сгенерируйте пару ключей (приватный и публичный). По умолчанию используется алгоритм Ed25519, который обеспечивает хорошую безопасность и производительность.

В Терминале выполните:

ssh-keygen -t ed25519 -C "ваш_email@example.com"

Замените "ваш_email@example.com" на ваш email или любой комментарий для идентификации ключа. Команда предложит указать место сохранения ключа (по умолчанию ~/.ssh/id_ed25519) и парольную фразу (passphrase). Для автоматизации можно оставить пароль пустым, но для повышенной безопасности рекомендуется задать сложный пароль.

Пример сессии:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/username/.ssh/id_ed25519): [Enter]
Enter passphrase (empty for no passphrase): [Введите пароль или оставьте пустым]
Enter same passphrase again: [Повторите]
Your identification has been saved in /Users/username/.ssh/id_ed25519
Your public key has been saved in /Users/username/.ssh/id_ed25519.pub

После генерации публичный ключ (id_ed25519.pub) нужно скопировать на сервер.

Шаг 3: Копирование публичного ключа на сервер

Самый простой способ — использовать утилиту ssh-copy-id, которая автоматически добавляет ваш публичный ключ в файл ~/.ssh/authorized_keys на удалённом сервере.

Выполните:

ssh-copy-id username@hostname

Замените username на имя пользователя на сервере и hostname на IP-адрес или доменное имя сервера. Вам будет предложено ввести пароль пользователя на сервере (один раз). После успешного выполнения ключ добавлен.

Если ssh-copy-id недоступен (например, на старых системах), скопируйте ключ вручную:

  1. Показать содержимое публичного ключа:
    cat ~/.ssh/id_ed25519.pub
    

    Скопируйте вывод (начинается с ssh-ed25519 ...).
  2. Подключитесь к серверу:
    ssh username@hostname
    
  3. На сервере создайте директорию .ssh если её нет, и добавьте ключ:
    mkdir -p ~/.ssh
    echo "скопированный_ключ" >> ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

⚠️ Важно: Права на файлы .ssh и authorized_keys должны быть строгими, иначе SSH отклонит аутентификацию по ключу.

Шаг 4: Настройка SSH конфигурации (опционально)

Для удобства можно создать конфигурационный файл ~/.ssh/config на вашем Mac, чтобы хранить параметры подключения для часто используемых серверов. Это позволяет подключаться просто по псевдониму.

Создайте или отредактируйте файл:

nano ~/.ssh/config

Добавьте блок для каждого сервера:

Host myserver
    HostName server.example.com
    User username
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Здесь:

  • Host — псевдоним, который будет использоваться в команде ssh myserver.
  • HostName — реальное имя хоста или IP.
  • User — имя пользователя на сервере.
  • Port — порт SSH (по умолчанию 22, если не изменён).
  • IdentityFile — путь к приватному ключу (если нестандартный).

Сохраните файл (в nano: Ctrl + O, затем Enter, и Ctrl + X для выхода). Теперь подключение упростится до ssh myserver.

Шаг 5: Подключение к удалённому серверу

После настройки ключей и конфигурации выполните тестовое подключение. Если вы использовали конфиг, подключайтесь по псевдониму:

ssh myserver

Или напрямую:

ssh username@hostname

Если всё настроено правильно, вы войдёте на сервер без запроса пароля (если ключ без passphrase) или с запросом passphrase ключа (если задан). При первом подключении может появиться предупреждение о fingerprint хоста — проверьте, что отпечаток совпадает с ожидаемым (например, через администратора сервера), и подтвердите.

Проверка результата

Чтобы убедиться, что SSH работает корректно:

  • Вы должны получить приглашение командной строки удалённого сервера (например, username@hostname:~$).
  • Проверьте, что вы можете выполнять команды на сервере, например, ls или pwd.
  • Если используется аутентификация по ключу, пароль не должен запрашиваться (если ключ без passphrase).
  • Для отладки используйте опцию -v (или -vvv для подробного вывода): ssh -v username@hostname.

Возможные проблемы

Ошибка "Permission denied (publickey,password)"

  • Причина: публичный ключ не найден или права на файлы на сервере некорректны.
  • Решение: Проверьте, что ~/.ssh/authorized_keys на сервере содержит ваш публичный ключ, и права: chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys. Убедитесь, что владелец — пользователь, под которым вы подключаетесь.

Ошибка "Connection refused" или timeout

  • Причина: SSH-демон не запущен на сервере, порт заблокирован фаерволом, или неверный хост/порт.
  • Решение: Проверьте, что на сервере запущен sshd (например, sudo systemctl status ssh). Убедитесь, что порт 22 (или кастомный) открыт в фаерволе и AllowUsers в конфиге SSH включает вашего пользователя.

Предупреждение о неизвестном хосте (fingerprint)

  • Причина: При первом подключении SSH запоминает отпечаток хоста. Если хост изменился (например, переустановка ОС), возникает предупреждение.
  • Решение: Если уверены в новом хосте, подтвердите. Если нет, проверьте с администратором. Чтобы сбросить запись, удалите строку с хостом из ~/.ssh/known_hosts.

Отсутствие команды ssh-copy-id

  • Решение: Установите через Homebrew: brew install ssh-copy-id или используйте ручное копирование, как описано выше.

Проблемы с правами доступа к ключам на Mac

  • Причина: Приватный ключ должен быть доступен только для чтения владельцем.
  • Решение: Выполните chmod 600 ~/.ssh/id_ed25519 (или соответствующий файл ключа).

Часто задаваемые вопросы

Как проверить, установлен ли SSH на моем Mac?
Что делать, если при подключении запрашивается пароль вместо использования ключа?
Можно ли изменить стандартный порт 22 для SSH?
Как скопировать SSH ключ на сервер, если нет ssh-copy-id?

Полезное

Проверка установки SSH
Генерация SSH ключей
Копирование публичного ключа на сервер
Настройка SSH конфигурации
Подключение к серверу

Эта статья помогла вам решить проблему?