Гид по технологиям

Как подключиться по SSH к Mac через Terminal

6 min read DevOps Обновлено 25 Sep 2025
SSH на Mac через Terminal — подробное руководство
SSH на Mac через Terminal — подробное руководство

Как подключиться по SSH к Mac через Terminal — иллюстрация

Введение

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

Важно: перед подключением убедитесь, что у вас есть доступ к адресу сервера и учётная запись на нём. Если вы подключаетесь к своему Mac с другого устройства, включите «Удалённый вход» в Системных настройках → Общий доступ.

1. Как открыть Terminal

  • Через Spotlight: нажмите Command + Space, введите Terminal и нажмите Enter.
  • Через Finder: Открыть «Программы» → «Служебные программы» → двойной клик по Terminal.

Совет: можно закрепить Terminal в Dock для быстрого доступа.

2. Установка SSH-сессии (базовый случай)

  1. Узнайте IP-адрес или доменное имя удалённого хоста.
  2. В Terminal выполните команду:
ssh username@ip-address
  • Замените username на имя учётной записи на удалённом хосте, ip-address на IP или домен.
  • При первом подключении появится предупреждение о добавлении отпечатка ключа в known_hosts — введите yes и нажмите Enter.
  • Введите пароль при запросе. Ввод пароля не отображается визуально — это нормально.

Если сервер использует нестандартный порт, укажите его через флаг -p:

ssh -p 2222 username@ip-address

3. SSH-ключи: вход без пароля

SSH-ключи состоят из пары приватного и публичного ключей. Приватный ключ хранится локально и ни в коем случае не передаётся. Публичный ключ помещают на сервер в файл ~/.ssh/authorized_keys.

Как сгенерировать ключ:

ssh-keygen -t ed25519 -C "mac-ssh-ключ"
  • По умолчанию ключ создаётся в ~/.ssh/id_ed25519. Можно задать passphrase для дополнительной защиты приватного ключа.

Как скопировать публичный ключ на сервер:

  • Если на сервере доступна утилита ssh-copy-id, выполните:
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@ip-address
  • Если ssh-copy-id недоступна, используйте команду копирования через SSH:
cat ~/.ssh/id_ed25519.pub | ssh username@ip-address 'mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'

Проверка: затем подключитесь обычной командой ssh username@ip-address — пароль не должен спрашиваться.

Работа с ssh-agent

Для удобства можно загрузить приватный ключ в агент, чтобы не вводить passphrase каждый раз:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

На macOS можно сохранить ключ в Keychain автоматически:

ssh-add -K ~/.ssh/id_ed25519

Важно: на новых версиях macOS флаг -K может быть устаревшим; используйте системный Keychain согласно документации вашей версии.

4. Удобная конфигурация ~/.ssh/config

Создайте или отредактируйте файл ~/.ssh/config для упрощения команд:

Host myserver
  HostName ip-address
  User username
  Port 2222
  IdentityFile ~/.ssh/id_ed25519
  AddKeysToAgent yes
  UseKeychain yes

После этого достаточно командой выполнить ssh myserver.

5. Передача файлов: scp и sftp

  • Копирование файла на сервер:
scp /path/to/local/file username@ip-address:/path/to/remote/
  • Копирование с сервера на локальный Mac:
scp username@ip-address:/path/to/remote/file /path/to/local/
  • SFTP для интерактивной передачи:
sftp username@ip-address
sftp> put localfile
sftp> get remotefile

Альтернатива: rsync поверх SSH для синхронизации директорий:

rsync -avz -e "ssh -p 2222" /local/dir/ username@ip-address:/remote/dir/

6. Навигация и базовые команды на удалённом хосте

  • cd directory — сменить директорию
  • ls — показать содержимое
  • mkdir directory — создать папку
  • rm file — удалить файл
  • cp source destination — копирование
  • mv source destination — переименование или перемещение

Совет: если планируете долгие процессы, используйте tmux или screen, чтобы не потерять сессию при обрыве соединения.

7. Завершение сессии

  • Введите команду exit и нажмите Enter.
  • Или нажмите Control + D.

8. Частые ошибки и способы их устранения

  • Permission denied (publickey,password): проверьте права на ~/.ssh, ~/.ssh/authorized_keys и допустимость ключа. Права должны быть 700 для ~/.ssh и 600 для authorized_keys.
  • Host key verification failed: возможно, сервер сменил ключ. Проверьте, не произошло ли компрометации; при уверенности удалите старую запись из ~/.ssh/known_hosts.
  • Connection refused: SSH-сервер может быть выключен или блокируется брандмауэром. Проверьте доступность порта через nc или telnet.

Примеры команд для отладки:

ssh -vvv username@ip-address
nc -zv ip-address 22

9. Повышение безопасности

  • Отключите вход по паролю на сервере, оставив только ключи (в конфигурации сервера /etc/ssh/sshd_config установить PasswordAuthentication no).
  • Используйте ключи ed25519 или RSA с длиной не менее 3072 бит, если крайний случай требует RSA.
  • Ограничьте доступ по IP, если возможно.
  • Регулярно обновляйте OpenSSH и систему.
  • Следите за правами на директории и файлы в ~/.ssh.

Важно: перед изменением настроек sshd на удалённом сервере убедитесь, что у вас есть способ восстановить доступ, иначе вы можете заблокировать себя.

10. Дополнительные сценарии и примеры

  • Переправление портов (dynamic SOCKS прокси):
ssh -D 1080 username@ip-address
  • Перенаправление локального порта на удалённый сервис:
ssh -L 8080:localhost:80 username@ip-address
  • Прокси через jump host (транзит через промежуточный сервер):

Можно также прописать ProxyJump в ~/.ssh/config для удобства.

11. Ролевые чеклисты

Для разработчика:

  • Сгенерировать ключ ed25519
  • Добавить ключ в агент
  • Настроить ~/.ssh/config с псевдонимом хоста
  • Проверить доступ через ssh псевдоним

Для системного администратора:

  • Настроить sshd_config с отключённым PasswordAuthentication
  • Настроить брандмауэр и ограничить подключение по IP
  • Вести журнал доступа и периодически проверять known_hosts

Для энтузиаста/новичка:

  • Включить «Удалённый вход» на Mac для удалённого доступа
  • Практиковаться на тестовой машине перед работой с продом

12. Краткая методология безопасного подключения

  1. Проверить адрес и доступность порта.
  2. Подключиться в режиме отладки, если первый раз.
  3. Использовать ключи вместо пароля.
  4. Настроить безопасные права на ~/.ssh.
  5. Документировать изменения и иметь запасной план восстановления.

13. Диаграмма принятия решения

flowchart TD
  A[Нужно подключиться по SSH?] --> B{Есть ключи?}
  B -- Да --> C[Пробовать ssh user@host]
  B -- Нет --> D[Сгенерировать ssh-keygen]
  D --> E[Скопировать публичный ключ на сервер]
  C --> F{Подключение не работает?}
  F -- Да --> G[Проверить права, known_hosts, порт]
  F -- Нет --> H[Готово]

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

Можно ли подключиться к своему Mac с другого устройства?

Да. На Mac включите «Удалённый вход» в Системных настройках → Общий доступ. Затем используйте ssh user@mac-ip или имя хоста.

Как узнать IP-адрес Mac?

Откройте Системные настройки → Сеть, выберите активное подключение и посмотрите IP. Или используйте в Terminal команду ifconfig и найдите соответствующий интерфейс.

Можно ли использовать SSH без пароля?

Да. Настройте SSH-ключи: сгенерируйте пару ключей и добавьте публичный ключ в ~/.ssh/authorized_keys на сервере. После этого вход будет происходить по ключу.

Безопасен ли SSH?

SSH шифрует трафик и считается безопасным при правильной конфигурации и актуальном программном обеспечении. Дополнительные меры безопасности включают отказ от паролей и ограничение доступа по IP.

Заключение

SSH на Mac через Terminal — это быстрый и безопасный способ удалённого управления и передачи файлов. Начните с базового подключения, затем настройте SSH-ключи и конфигурацию для удобства. Не забывайте о безопасности: права доступа, актуализация ПО и резервные способы доступа помогут избежать блокировки.

Заметки:

  • Если вы работаете с корпоративной сетью, уточните у администраторов допустимые политики доступа.
  • Тестируйте изменения на непроизводственных серверах.

Резюме

  • SSH встроен в macOS и работает через Terminal.
  • Ключи SSH обеспечивают вход без пароля и повышают безопасность.
  • ~/.ssh/config упрощает подключение к нескольким хостам.
  • Используйте scp, sftp или rsync для передачи файлов.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Сборка ядра Linux — традиционный способ
Linux

Сборка ядра Linux — традиционный способ

Hotmail в Gmail: отправка и получение
Почта

Hotmail в Gmail: отправка и получение

QuickClick: управление через кнопки громкости
Android.

QuickClick: управление через кнопки громкости

Hotmail в Thunderbird через POP3 — настройка
Почта

Hotmail в Thunderbird через POP3 — настройка

Как просмотреть и удалить историю просмотров YouTube
Приватность

Как просмотреть и удалить историю просмотров YouTube

Putlocker не работает — быстрые исправления
Стриминг

Putlocker не работает — быстрые исправления