Опубликовано
Если вам нужно использовать SSH в Linux для удаленного управления другими компьютерами, это руководство поможет вам сделать это.
В сегодняшней взаимосвязанной среде возможность управлять компьютерами из разных географических точек превратилась из роскоши в необходимость. Сделать это можно несколькими способами, в зависимости от используемой операционной системы. Для Системы на базе Linux, наиболее распространенным и безопасным способом удаленного управления вашим компьютером является использование SSH (или Безопасная оболочка).
Давайте углубимся в то, как использовать SSH в Linux для подключения к другим компьютерам.
Основные первые шаги
Прежде чем вы сможете успешно подключиться к другому компьютеру Linux с помощью SSH, вам необходимо выполнить следующие предварительные условия:
- Целевой компьютер должен оставаться включенным и подключенным к сети.
- Необходимое клиентское и серверное программное обеспечение должно быть установлено и активировано.
- Вам нужно будет знать IP-адрес или имя хоста целевого компьютера.
- Должны быть установлены соответствующие разрешения для удаленного доступа.
- Конфигурации брандмауэра на удаленном компьютере должны разрешить входящее соединение.
Если вы получаете доступ к компьютеру с Linux, которым управляет, скажем, ваша веб-хостинговая компания, они уже должны были позаботиться обо всем этом. Далее вам, возможно, придется выполнить базовую установку программного обеспечения на свой компьютер с Linux.
Использование SSH в Linux: практическое руководство
Для установления функционального соединения SSH требуются как клиентские, так и серверные программные модули. OpenSSH служит альтернатива с открытым исходным кодом преимущественно для платформ Linux.
Чтобы установить правильный клиент OpenSSH, вам понадобится доступ к терминалу на вашем локальном компьютере. Обратите внимание, что в системах Ubuntu отсутствует предустановленный SSH-сервер.
Установка клиента OpenSSH
Прежде чем углубляться в процесс установки, вам следует убедиться, что SSH-клиент еще не установлен. Для этого просто открыть окно терминала. Вы можете выполнить поиск по слову «терминал» или нажать Ctrl + Альт + Т на вашей клавиатуре.
В окне терминала проверьте наличие SSH-клиента, набрав следующее:
$ ssh
Если на компьютере Linux уже установлен SSH-клиент, вы увидите следующую информацию, прокручивающуюся по экрану.
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host: port] [-w local_tun[:remote_tun]] destination [command [argument ...]]
Если вместо этого вы получите жалобу на то, что файл не найден, вам нужно будет продолжить установку клиента OpenSSH. К счастью, это достаточно просто.
В Ubuntu и других установках на базе Debian просто запустите в терминале следующую команду:
$ sudo apt install openssh-client
Если вы используете Fedora или другой дистрибутив который использует ням вместо подходящий, просто запустите эту команду:
$ sudo yum -y install openssh-clients
Более новые системы Fedora могут использовать ДНФ вместо. Если это похоже на вас, волшебная команда:
$ sudo dnf install -y openssh-clients
Следуйте инструкциям на экране, и вы сразу же сможете приступить к работе.
Инициирование SSH-соединения
Убедившись, что SSH-клиент установлен на вашем компьютере с Linux, пришло время запустить первое соединение. Пока вы все еще находитесь в окне терминала, введите следующую команду:
$ ssh username@host_ip_address
Если имена пользователей совпадают на локальном и удаленном компьютерах, просто введите:
$ ssh host_ip_address
При первом подключении вас встретит запрос с вопросом, хотите ли вы продолжить подключение к неизвестному компьютеру. На этом этапе введите да и продолжить.
Введите свой пароль, понимая, что во время входа вы не получите никакой обратной связи на экране. После этого вы должны войти на удаленный сервер и начать выполнять любую задачу, которую вам необходимо выполнить на этом компьютере.
Понимание SSH: общий обзор
Secure Shell, или SSH, иногда называемый Secure Socket Shell, — это протокол, обеспечивающий безопасное подключение к удаленным серверам или компьютерам через текстовый интерфейс.
После аутентификации безопасного канала SSH инициализируется сеанс оболочки, позволяющий взаимодействовать с командной строкой с вашего локального компьютера.
Этот протокол хорошо известен и любим системными и сетевыми администраторами, а также всеми, кому требуется безопасное удаленное управление компьютером.
Механика функциональности SSH
Создание канала SSH требует взаимодействия двух основных компонентов: приложения на стороне клиента и его аналога на стороне сервера. Клиентское приложение инициирует соединение, предоставляя учетные данные удаленного хоста.
Если проверка подтверждена, программное обеспечение создает зашифрованный канал между двумя компьютерами. На удаленном компьютере демон SSH постоянно сканирует назначенный порт TCP/IP на наличие потенциальных запросов на подключение.
После получения демон передает свое программное обеспечение и возможности протокола, и оба объекта обмениваются идентификационными данными. Зашифрованный сеанс возникает, если учетные данные совпадают, преимущественно через протокол SSH версии 2.
Расширенное использование SSH: сохранение ключа шифрования, чтобы избежать ввода пароля
Теперь предположим, что вы хотите избежать необходимости введите ваш пароль каждый раз, когда вы заходите на удаленный сервер. Для безопасного подключения без пароля к другому компьютеру необходим ключ SSH (Secure Shell).
Возможно, у вас уже есть такой ключ, но создание нового никогда не будет плохой идеей. Созданный на вашем локальном компьютере ключ SSH делится на два отдельных элемента: конфиденциальный, закрытый ключ, который никогда не будет разглашаться, и его общедоступный аналог. Этот открытый ключ затем распространяется на все удаленные системы, в которые вам необходимо войти.
Некоторые люди могут выбрать один ключ SSH для множества приложений, от удаленного входа в систему до GitLab. Можно сказать, что один ключ, чтобы управлять ими всеми. Однако мой подход более детальный. Я использую разные клавиши, каждая из которых предназначена для определенного подмножества задач.
Например, я использую специальный ключ для локальных компьютеров в моей домашней сети, еще один эксклюзивный вариант. ключ для веб-серверов под моим администрированием и еще один уникальный ключ для взаимодействия с Git хозяева.
Создание новой пары ключей SSH
Вот как вы можете создать новый ключ SSH, а затем скопировать его на удаленный сервер, для которого хотите его использовать. Сначала создайте ключ, используя ssh-кейген.
$ ssh-keygen -t ed25519 -f /.ssh/lan
Флаг -т указывает тип создаваемого ключа, обеспечивая более высокий уровень шифрования, чем значение по умолчанию. -ф Флаг устанавливает имя и местоположение файла ключа.
Когда вы введете эту команду, вам будет предложено создать пароль для ключа. Этот пароль, если вы его установите, остается локальным и не отправляется по сети.
Отправка SSH-ключа на удаленный сервер
Далее вам нужно будет отправить этот ключ безопасности на удаленный сервер. Для этого просто введите следующую команду:
$ ssh-copy-id -i /.ssh/lan.pub user@host_ip_address
Вам будет предложено ввести пароль для входа на удаленный хост. Однако после завершения процесса ваш ключ будет установлен на этот компьютер.
Вы должны проверить, попытавшись войти на удаленный компьютер. Когда вы снова подключитесь к удаленному хосту по ssh, вам будет предложено ввести парольную фразу для ключа, если вы ее установили. Помните, что это не ваш пароль для входа. Это парольная фраза, специфичная для этого ключа SSH.
Во многих дистрибутивах, включая Linux, запрос пароля открывается в виде диалогового окна. Как видно из примера ниже, вы можете установить флажок, чтобы компьютер Linux запомнил парольную фразу. Однако это снизит безопасность ключа.
После того, как вы ввели парольную фразу для своего SSH-ключа, вам не придется вводить ее снова, пока вы не выйдете из локального компьютера.
Другие способы использования SSH
После всего этого можно использовать SSH для удаленного доступа к другим компьютерам на базе Linux или Unix. Конечно, дело не только в доступе к командной строке.
SSH также включает безопасный способ передачи файлов между компьютерами без использования FTP. Вы можете использовать Secure Copy или scp, чтобы переместите эти файлы. Если вы пользователь Windows 11 и вам нужно использовать SSH, вам повезло, поскольку клиент предустановлен. Ты можешь даже генерировать и использовать Ключи SSH в Windows 11.