Secure Shell (SSH) – это незаменимый инструмент для системных администраторов, разработчиков и всех, кто управляет удаленными серверами. С помощью SSH вы можете безопасно подключаться к удаленной машине, выполнять команды, передавать файлы и выполнять административные задачи. В этой статье мы рассмотрим 10 распространенных команд SSH, которые вы должны использовать уже сегодня.
1. Подключение к удаленному серверу
Самая простая команда SSH используется для подключения к удаленному серверу:
ssh user@remote_hostЗамените user на ваше имя пользователя, а remote_host – на IP-адрес или доменное имя сервера.
2. Подключение к определенному порту
По умолчанию SSH использует порт 22, но при необходимости вы можете указать другой порт:
ssh -p 2222 user@remote_hostЭто полезно, если сервер SSH настроен на работу с нестандартным портом.
3. Использование ключей SSH для аутентификации
Вместо пароля вы можете аутентифицироваться с помощью SSH-ключа:
ssh -i /path/to/private_key user@remote_hostСгенерировать SSH-ключ можно с помощью:
ssh-keygen -t rsa -b 4096Это повышает безопасность и избавляет от необходимости каждый раз вводить пароль.
4. Выполнение команд на удаленном сервере
Вы можете выполнить одну команду на удаленном сервере, не открывая интерактивный сеанс:
ssh user@remote_host "ls -l /var/www/html"
Это полезно для быстрого выполнения административных задач.
5. Копирование файлов с помощью SCP
Протокол безопасного копирования (SCP) позволяет передавать файлы между локальными и удаленными машинами:
scp file.txt user@remote_host:/remote/directory/Для рекурсивного копирования каталога:
scp -r /local/directory user@remote_host:/remote/directory/6. Копирование файлов с помощью rsync
Альтернативой SCP является rsync, который более эффективен для синхронизации файлов:
rsync -avz /local/directory user@remote_host:/remote/directoryОн минимизирует передачу данных, отправляя только различия между файлами.
7. Настройка туннелирования SSH
Туннелирование SSH позволяет безопасно пересылать сетевой трафик. Чтобы создать локальный туннель, выполните следующие действия:
ssh -L 8080:localhost:80 user@remote_hostЭто перенаправит трафик с вашего локального порта 8080 на порт 80 удаленного сервера.
8. Обратное SSH-туннелирование
Обратное туннелирование позволяет удаленному серверу получить доступ к вашей локальной машине:
ssh -R 9090:localhost:22 user@remote_hostЭто полезно для доступа к системе, находящейся за брандмауэром.
9. Мультиплексирование SSH-соединений
Если вы часто подключаетесь к одному и тому же серверу, вы можете ускорить работу SSH, включив мультиплексирование:
ssh -o ControlMaster=yes -o ControlPath=~/.ssh/socket user@remote_hostЭто уменьшит накладные расходы на аутентификацию для нескольких сеансов SSH.
10. Завершение сеанса SSH
Чтобы закрыть сеанс SSH, просто введите:
exitИли воспользуйтесь экранирующей последовательностью:
~.Это полезно, когда соединение не отвечает на запросы.


