20 распространенных команд SSH, которые вы должны использовать сегодня
SSH (Secure Shell) – это широко используемый протокол для безопасного доступа к удаленным серверам. Он позволяет управлять удаленными системами и взаимодействовать с ними через зашифрованное соединение. Овладение основными командами SSH может значительно повысить вашу производительность и упростить управление удаленными серверами. Ниже приведены 20 распространенных команд SSH, которые должен знать каждый системный администратор, разработчик или любой человек, работающий с серверами.
1. Базовое SSH-соединение
Эта команда используется для подключения к удаленному серверу по SSH.
- Замените username на ваше имя пользователя, а remote_host – на IP-адрес или доменное имя сервера.
Пример:
2. Укажите порт
По умолчанию SSH использует порт 22. Если ваш сервер использует другой порт, укажите его с помощью флага -p.
Пример:
3. Копирование файлов с локального на удаленный с помощью scp
Используйте scp (безопасное копирование) для передачи файлов с локального компьютера на удаленный сервер.
Пример:
4. Копирование файлов с удаленного компьютера на локальный с помощью scp
Чтобы загрузить файлы с удаленного сервера на локальную машину, выполните следующие действия:
Пример:
5. Рекурсивное копирование каталогов с помощью scp
Чтобы скопировать целые каталоги (включая подкаталоги), используйте флаг -r в scp.
Пример:
6. Выполнение команд на удаленном сервере
Вы можете выполнить команду на удаленном сервере, не открывая интерактивный сеанс SSH.
Пример:
7. Использование аутентификации по ключу SSH
Чтобы не вводить пароли каждый раз, можно использовать аутентификацию с помощью ключей SSH.
- Сгенерируйте пару ключей SSH:ssh-keygen -t rsa
- Скопируйте открытый ключ на удаленный сервер:ssh-copy-id username@remote_host
После копирования ключа вы сможете войти в систему без пароля.
8. Проверка журналов соединений SSH
Чтобы просмотреть попытки входа в систему SSH и журналы соединений на сервере:
Эта команда полезна для отслеживания попыток несанкционированного входа в систему.
9. Туннелирование SSH (переадресация портов)
SSH-туннелирование позволяет безопасно перенаправлять трафик с локального порта на удаленный сервер.
Переадресация локального порта:
Пример: Перенаправить локальный порт 8080 на порт 3306 удаленного сервера.
Удаленная переадресация портов:
10. SSH на удаленном сервере с другим файлом идентификации
Если у вас есть несколько SSH-ключей, вы можете указать конкретный ключ с помощью флага -i.
Пример:
11. Копирование файлов с помощью rsync через SSH
rsync – это более продвинутый инструмент, чем scp, для копирования файлов и каталогов.
Пример:
Флаг -a сохраняет права доступа к файлам, -v служит для подробного вывода, а -z включает сжатие.
12. Проверка состояния SSH-соединения
Чтобы проверить, активно ли SSH-соединение с удаленным сервером:
Эта команда проверяет состояние соединения, не прерывая его.
13. Список активных SSH-соединений
Чтобы перечислить активные SSH-соединения на сервере, вы можете использовать:
Или:
Эти команды показывают, какие пользователи в данный момент вошли на сервер.
14. Прервать сеанс SSH
Чтобы выйти из сеанса SSH, просто введите:
Или нажмите Ctrl D.
15. Настройка SOCKS-прокси с помощью SSH
SSH может выступать в роли SOCKS-прокси, позволяя вам безопасно просматривать интернет-страницы через SSH-туннель.
Пример:
Затем установите в настройках прокси-сервера вашего браузера значение localhost:8080, чтобы использовать SOCKS-прокси.
16. Переадресация агента SSH
Если вы хотите использовать свои локальные SSH-ключи на удаленном сервере:
- Запустите SSH-агент на локальной машине:eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa - Подключитесь с помощью переадресации агента:ssh -A username@remote_host
Это позволит вам подключаться по SSH с удаленного сервера на другой сервер, используя локальный ключ.
17. Файл конфигурации SSH
Чтобы упростить SSH-соединения, можно создать файл конфигурации:
- Отредактируйте или создайте ~/.ssh/config:nano ~/.ssh/config
- Добавьте запись:Host myserver
HostName example.com
Пользователь user
Порт 2222
IdentityFile ~/.ssh/id_rsa - Подключитесь с помощью:ssh myserver
18. Проверка версии SSH
Чтобы узнать, какая версия SSH установлена в вашей системе:
Пример вывода:
19. Установка интервала KeepAlive для предотвращения таймаута
Чтобы поддерживать SSH-соединение и предотвратить его обрыв, добавьте следующее в ~/.ssh/config:
ServerAliveInterval 60
Это отправляет сигнал keep-alive каждые 60 секунд.
20. Проверка доступного дискового пространства на удаленном сервере
Вы можете использовать df через SSH для проверки дискового пространства на удаленном сервере:
Пример:
Эта команда показывает доступное дисковое пространство в человекочитаемом формате (-h).
Резюме
Эти 20 команд SSH охватывают широкий спектр функций, от базовых подключений и передачи файлов до таких сложных задач, как создание туннелей и использование ключей SSH. Освоив эти команды, вы сможете управлять удаленными серверами более эффективно и безопасно. Вне зависимости от того, развертываете ли вы приложения, передаете файлы или устраняете неполадки на сервере, эти команды SSH являются необходимыми инструментами в арсенале системного администратора.