Semenalidery.com

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ssh client linux

6 мин для чтения Команда SSH

Есть ряд SSH-клиентов, доступных как бесплатных, так и коммерческих, при этом OpenSSH является наиболее широко используемым клиентом. Он доступен на всех основных платформах, включая Linux, OpenBSD, Windows, macOS и другие.

В этой статье мы расскажем, как использовать клиент командной строки OpenSSH (ssh) для входа на удаленный компьютер и выполнения команд или выполнения других операций.

Установка OpenSSH клиента

Клиентская программа OpenSSH вызывается ssh и может быть вызвана из терминала. Клиентский пакет OpenSSH также предоставляет другие утилиты SSH, такие как scp и sftp, которые устанавливаются вместе с командой ssh.

Установка клиента OpenSSH в Linux

Клиент OpenSSH по умолчанию предустановлен в большинстве дистрибутивов Linux. Если в вашей системе не установлен клиент ssh, вы можете установить его с помощью менеджера пакетов вашего дистрибутива.

Установка OpenSSH в Ubuntu и Debian

Установка OpenSSH на CentOS и Fedora

Установка OpenSSH клиента в Windows 10

Большинство пользователей Windows используют Putty для подключения к удаленному компьютеру через SSH. Однако последние версии Windows 10 включают в себя клиент и сервер OpenSSH. Оба пакета могут быть установлены через графический интерфейс или PowerShell.

Чтобы найти точное имя пакета OpenSSH, введите следующую команду:

Команда должна вернуть что-то вроде этого:

Как только вы узнаете имя пакета, установите его, выполнив:

В случае успеха вывод будет выглядеть примерно так:

Установка OpenSSH клиента на macOS

MacOS поставляется с клиентом OpenSSH, установленным по умолчанию.

Как использовать команду ssh

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

  • Сервер SSH должен быть запущен на удаленной машине.
  • Порт SSH должен быть открыт в брандмауэре удаленного компьютера.
  • Вы должны знать имя пользователя и пароль удаленной учетной записи. Учетная запись должна иметь надлежащие привилегии для удаленного входа.

Основной синтаксис команды ssh следующий:

Чтобы использовать команду ssh, откройте свой терминал или PowerShell и введите ssh, а затем имя удаленного хоста:

При первом подключении к удаленному компьютеру через SSH вы увидите сообщение, подобное приведенному ниже.

Каждый хост имеет уникальный отпечаток, который хранится в файле

Введите yes для хранения удаленного отпечатка, и вам будет предложено ввести пароль.

После того, как вы введете пароль, вы войдете на удаленный компьютер.

Если имя пользователя не указано, команда ssh использует текущее имя пользователя системы.
Чтобы войти как другой пользователь, укажите имя пользователя и хост в следующем формате:

Имя пользователя также можно указать с помощью опции -l:

По умолчанию, когда порт не указан, клиент SSH будет пытаться подключиться к удаленному серверу через порт 22. На некоторых серверах администраторы изменяют порт SSH по умолчанию, чтобы добавить дополнительный уровень безопасности для сервера за счет снижения риска автоматизированные атаки.

Чтобы подключиться к порту не по умолчанию, используйте опцию -p для указания порта:

Если вы испытываете проблемы с аутентификацией или соединением, используйте опцию -v, чтобы сказать ssh для печати отладочных сообщений:

Чтобы увеличить уровень детализации, используйте -vv или -vvv.

Команда ssh принимает несколько вариантов.

Файл конфигурации SSH

Если вы ежедневно подключаетесь к нескольким удаленным системам через SSH, вы обнаружите, что запоминать все удаленные IP-адреса, разные имена пользователей, нестандартные порты и различные параметры командной строки сложно, если не невозможно.

Клиент OpenSSH считывает параметры, установленные в файле конфигурации для каждого пользователя (

/.ssh/config). В этом файле вы можете хранить различные параметры SSH для каждого удаленного компьютера, к которому вы подключаетесь.

Пример конфигурации SSH показан ниже:

При запуске клиента ssh с помощью команды ssh dev, команда прочитает файл

/.ssh/config и будет использовать сведения о соединении, указанные для хоста dev. В этом примере ssh dev эквивалентно следующему:

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

Аутентификация с открытым ключом

Протокол SSH поддерживает различные механизмы аутентификации.

Механизм аутентификации на основе открытого ключа позволяет вам войти на удаленный сервер без необходимости ввода пароля.

Этот метод работает путем генерации пары криптографических ключей, которые используются для аутентификации. Закрытый ключ хранится на клиентском устройстве, а открытый ключ передается на каждый удаленный сервер, на котором вы хотите войти. Удаленный сервер должен быть настроен для принятия проверки подлинности ключа.

Если у вас уже нет пары ключей SSH на вашем локальном компьютере, вы можете сгенерировать ее, набрав:

Вам будет предложено ввести безопасную фразу-пароль. Хотите ли вы использовать фразу-пароль, решать только вам.

Получив пару ключей, скопируйте открытый ключ на удаленный сервер:

Введите пароль удаленного пользователя, и открытый ключ будет добавлен в файл authorized_keys удаленного пользователя.

После загрузки ключа вы можете войти на удаленный сервер без запроса пароля.

Установив аутентификацию на основе ключей, вы можете упростить процесс входа в систему и повысить общую безопасность сервера.

Перенаправление порта

Туннелирование SSH или переадресация SSH-порта – это метод создания зашифрованного SSH-соединения между клиентом и серверным компьютером, через который можно ретранслировать сервисные порты.

Пересылка SSH полезна для передачи сетевых данных служб, которые используют незашифрованный протокол, таких как VNC или FTP, для доступа к контенту с географическим ограничением или обхода промежуточных межсетевых экранов. По сути, вы можете перенаправить любой порт TCP и туннелировать трафик через безопасное соединение SSH.

Существует три типа переадресации портов SSH:

Переадресация локального порта

Переадресация локального порта позволяет переадресовать соединение с клиентского хоста на хост сервера SSH, а затем на порт хоста назначения.

Чтобы создать локальную переадресацию портов, передайте опцию -L клиенту ssh:

Опция -f указывает команде ssh запускаться в фоновом режиме, а -N – не выполнять удаленную команду.

Переадресация удаленных портов

Переадресация удаленных портов является противоположностью переадресации локальных портов. Он перенаправляет порт с хоста сервера на хост клиента, а затем на порт хоста назначения.

Опция -L указывает ssh создать перенаправление на удаленный порт:

Динамическая переадресация портов

Динамическая переадресация портов создает прокси-сервер SOCKS, который обеспечивает связь через ряд портов.

Чтобы создать динамическую переадресацию портов (SOCKS), передайте опцию -D клиенту ssh:

Вывод

Для подключения к удаленному серверу через SSH используйте команду ssh, за которой следуют имя удаленного пользователя и имя хоста (ssh username@hostname).

Знание того, как использовать команду ssh, необходимо для управления удаленным сервером.

Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка и настройка сервера SSH в Linux

Secure Shell, т. е. SSH – протокол, обеспечивающий защищённые соединения и передачу данных между двумя удалёнными компьютерами. Изначально создавался на замену таким системам как rlogin и rcp. Как понятно из полного названия протокола, система SSH позволяет соединяться и управлять удалённым узлом (компьютером, маршрутизатором и т. д.), при этом защищая весь передаваемый трафик с помощью высоконадёжного шифрования.
SSH широко применяется администраторами серверов для их настройки и управления, да и обычные продвинутые пользователи — владельцы, например, сайтов или виртуальных серверов активно используют SSH для подключения к своей учётной записи на хостинге и использования командной оболочки сервера.
Сразу после окончания разработки система SSH стала активно трансформироваться в закрытый коммерческий продукт в виде версии SSH2. Но благодаря сообществу GNU версии протокола SSH1 и SSH2 были реализованы в виде открытого и свободно распространяемого ПО openSSH. В Linux-системах используется именно этот метапакет.
Метапакет SSH базово включает в себя сервер SSH (sshd) в качестве програмы-демона, а также несколько утилит: ssh – удаленная регистрация и выполнение команд, scp – передача файлов и ssh-keygen – для генерации пар SSH-ключей.

Читать еще:  Дефрагментация и оптимизация что это

Установка пакетов SSH

Как уже говорилось система ssh в Linux-системах распространяется в виде составного метапакета, поэтому для установки всех требуемых утилит ssh нужно выполнить всего одну команду:
В Ubuntu

После чего начнется процесс установки

Как видно, менеджер пакетов сам распознает все зависимые и связанные пакеты и установит их. Также, по завершению установки, автоматически будет запущен SSH-сервер в режиме демона. Это можно проверить командой:
$ systemctl status sshd
или:
$ service sshd status даст тот же вывод. Теперь сервер работает с базовыми настройками по-умолчанию.

Настройка SSH

Режим работы SSH-сервера с настройками по-умолчанию хоть и является вполне работоспособным для небольших частных сетей, всё же нуждается в задании некоторых важных параметров для использования на высоконадёжных публичных серверах. Настройки демона хранятся в файле /etc/ssh/sshd_config. Посмотреть его можно командой

В первую очередь следует обратить внимание на следующие параметры: Port, AddressFamily, ListenAddress. Первый глобально задаёт номер порта, через который будет работать соединение и если оставить его стандартным, т. е. 22, то велика вероятность, что он будет слишком часто сканироваться роботами.
Примечание: для задания активации параметра необходимо раскомментировать соответствующую строку — убрать символ «#» в её начале.
Второй параметр задаёт семейство используемых IP-адресов — IPv4 и IPv6. Если, к примеру, используются только адреса IPv4, то очень рекомендуется установить для параметра

Для адресов семейства IPv6 используется значение inet6.
Параметр ListenAddress позволяет задавать порты для отдельных сетевых интерфейсов:

Поскольку реализация openSSH позволяет работать с протоколами SSH1 и SSH2, то разумно отключить использование SSH1, т. к. эта версия является устаревшей. Работа по SSH1 крайне не рекомендуется: Protocol 2
Очень полезным является параметр, позволяющий проводить авторизацию и шифрование трафика с помощью специальных SSH-ключей:

Следует заметить, что в таком случае серверу необходимо явно указывать, где хранятся открытые ключи пользователей. Это может быть как один общий файл для хранения ключей всех пользователей (обычно это файл etc/.ssh/authorized_keys), так и отдельные для каждого пользователя ключи. Второй вариант предпочтительнее в силу удобства администрирования и повышения безопасности:
AuthorizedKeysFile etc/ssh/authorized_keys # Для общего файла
AuthorizedKeysFile %h/.ssh/authorized_keys # Файл -> пользователь
Во втором варианте благодаря шаблону автоподстановки с маской «%h» будет использоваться домашний каталог пользователя.
Важно также отключать парольный доступ:

Или же, в случае, если всё-таки необходимо использовать доступ по паролю, то обязательно нужно отключать авторизацию по пустому паролю:

Для указания разрешённых или запрещённых пользователей и групп служат директивы DenyUsers, AllowUsers, DenyGroups, и AllowGroups. Значениями для них являются списки имён, разделяемых пробелами, например:

Следует также отключать root-доступ:

Иногда, когда следует задавать мультисерверную конфигурацию, очень удобно использовать алиасы (Aliases), что позволяет настроить сразу несколько режимов доступа (с разными хостами, портами и т. д.) и использовать их, указывая при этом конкретный алиас:

Настройки для алиасов хранятся либо глобально в /etc/ssh/ssh_config, либо раздельно для пользователей в

/.ssh/config. Здесь нужно не спутать с ssh_config! Пример:

Для применения сделанных настроек необходим перезапуск SSH-сервера:

Настройка и использование клиента SSH
Для подключения по к серверу используется команда:

где user_name – имя пользователя в системе, host_name – имя узла, к которому производится подключение, например:

При этом утилита ssh запросит (в зависимости от настроек сервера) логин, пароль или парольную фразу для разблокировки приватного ключа пользователя.
В случае авторизации по ключу, должна быть предварительно сгенерирована пара SSH-ключей — открытый, который хранится на стороне сервера, обычно в файле .ssh/authorized_keys в домашнем каталоге пользователя, и закрытый — используется для авторизации клиента и хранится, как правило, в каталоге .ssh/ домашней директории пользователя. Открытый ключ представляет собой «цифровой слепок» закрытого ключа благодаря которому сервер «знает», кто «свой», а кто «чужой».
Для генерации ключей используется утилита ssh-keygen:

Утилита предложит выбрать расположение ключей (лучше всё оставить по-умолчанию), обычно это каталог

/.ssh/, ввести парольную фразу для закрытого ключа. После чего будут сгенерированы открытый ключ id_rsa.pub и закрытый — id_rsa. Теперь нужно скопировать открытый ключ, т. е. «слепок» закрытого на сервер. Проще всего этого можно добиться командой:

Теперь можно выполнить подключение командой ssh и запустить защищённый сеанс удалённого управления.
Важно заметить, что использование сгенерированных openSSH-ключей несовместимо с PPK-форматом, используемым по-умолчанию в таких комплексах как PuTTY. Поэтому необходимо конвертировать имеющиеся openSSH-ключи в формат PPK. Удобнее всего это делать с помощью утилиты PuTTY – puttygen.exe.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Ssh client linux

Основным способом удаленного доступа к серверам под управлением операционной системы Linux является подключение по протоколу SSH. Такое соединение является безопасным, так как все передаваемые данные зашифрованы. Для того, чтобы установить SSH-подключение необходимо на удаленной машине (сервере) настроить серверную часть, а на стороне пользователя клиентскую. Существует множество программных реализаций SSH, для операционной системы Linux наиболее распространен пакет OpenSSH, а в качестве клиента для Windows чаще всего используется PuTTY.

Рассмотрим установку и настройку серверной части на примере Ubuntu Server 18.04, затем выполним подключение к серверу из операционных систем Linux и Windows.

Все действия на сервере выполняем под учетной записью обычного пользователя, в нашем случае в системе для примера создан пользователь mihail, а учетная запись root по умолчанию отключена.

1. Установка серверной части

Устанавливаем пакет с помощью команды:

sudo apt install openssh-server

После завершения установки, убедимся, что служба запущена. Введем команду:

systemctl status sshd

Состояние “Active (running)” говорит о том, что служба работает.

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

sudo ufw disable

На этом этапе вы уже можете подключаться к серверу. С настройками по умолчанию сервер принимает входящие подключения на стандартный порт 22, с аутентификацией по паролю.

2. Подключение по SSH из Linux

Обычно в дистрибутивах Linux клиент OpenSSH установлен по умолчанию и не требует предварительной настройки. Подключение выполняется из окна терминала с помощью команды ssh. В качестве аргументов указываем имя пользователя и IP-адрес удаленного сервера. На нашем тестовом сервере, который мы используем в данном примере, существует только одна учетная запись mihail, именно её и будем использовать для подключения.

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

3. Подключение по SSH из Windows

Запускаем клиент Putty и устанавливаем параметры соединения. Переключатель “Connection type” переводим в положение SSH, в поле “Host Name” вводим IP-адрес сервера, в поле “Port” оставляем значение по умолчанию 22 и нажимаем Open.

При первом подключении Putty попросит подтвердить, что вы доверяете этому серверу, нажимаем “Yes/Да

После ввода логина и пароля вы увидите командную строку удаленного сервера.

4. Аутентификация по ключу. Повышаем уровень безопасности

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

Читать еще:  Оптимизированные игры на пк

Для решения этих задач существует метод аутентификации по ключу. Его суть заключается в том, клиент генерирует приватный и публичный ключи, затем публичный ключ передаётся на сервер. После этого для подключения к серверу ввод пароля не требуется, так как аутентификация выполняется на основе взаимодействия закрытого и открытого ключей клиента. Для обеспечения безопасности доступ к закрытому ключу должен быть ограничен. Так как закрытый ключ хранится на машине клиента и не передается по сети, такой метод является более защищенным.

5. Настройка аутентификации по ключу из Linux

Генерируем публичный и приватный ключ на клиентской машине используя утилиту ssh-keygen. В процессе выполнения утилита предложит изменить путь к приватному ключу и ввести парольную фразу для дополнительной защиты. Оставляем все параметры по умолчанию нажимая Enter при выводе запросов.

В результате в домашнем каталоге пользователя в папке .ssh, будут сгенерированы два файла id_rsa и id_rsa.pub содержащие закрытый и открытый ключи соответственно.

После этого необходимо открытый ключ передать на сервер, а именно скопировать содержимое файла “id_rsa.pub” в файл “

/.ssh/authorized_keys” на сервере. Воспользуемся самым простым способом, утилитой “ssh-copy-id” В качестве параметров указываем логин и IP-адрес сервера, как при обычном подключении. После ввода пароля публичный ключ клиента будет автоматически скопирован на сервер. Выполняем команду:

После выполнения этих действий при подключении к серверу, пароль запрашиваться не будет.

6. Настройка аутентификации по ключу из Windows

Запускаем утилиту PUTTYGEN и нажимаем кнопку “Generate”. Для выполнения генерации необходимо произвольно перемещать указатель мышки по рабочему столу.

После того, как ключи сгенерированы, нажимаем кнопку “Save private key” и сохраняем файл с приватным ключом на диск. Место хранения закрытого ключа может быть произвольным, в дальнейшем в параметрях Putty потребуется указать путь к этому файлу. Далее выделяем и копируем в буфер обмена публичный ключ, отображаемый в верхней части окна.

Передачу публичного ключа на сервер выполним обычным копированием через окно терминала. Открываем Putty и подключаемся к серверу обычным способом.

Создадим в домашнем каталоге файл “.ssh/authorized_keys” и ограничим права других пользователей, так, чтобы доступ к этому файлу имел только владелец.

mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

После создания файла запишем в него публичный ключ клиента. На предыдущем шаге публичный ключ был скопирован в буфер обмена. Для записи содержимого буфера обмена в файл воспользуемся командой cat и перенаправлением вывода.

После ввода команды щелкнем правой кнопкой мыши по окну терминала для вставки содержимого буфера обмена. Для завершения ввода нажимаем комбинацию клавиш “Ctrl+D” и отключаемся от сервера.

Далее укажем в параметрах Putty место хранения приватного ключа и снова выполним подключение к серверу.

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

JenRom Blog

Любой конец является началом…

Свежие записи

Недавние комментарии

Рубрики

OpenSSH. Настройка SSH сервера и клиента в Linux. Часть 1.

Telnet и FTP — хорошо известные протоколы, но они передают данные в простом текстовом формате, которые могут быть с легкостью перехвачены кем-либо, находящимся в одной сети.

SSH (Secure Shell) использует SSL для шифрования трафика. OpenSSHopen-source версия SSH. Все данные, передаваемые с помощью инструментов OpenSSH, зашифрованы, что делает передачу по сути более безопасной.

Набор инструментов OpenSSH включает в себя ssh для безопасного входа в удаленную систему и выполнения удаленных команд, scp для шифрования файлов при передаче их на удаленную систему и sftp для безопасной FTP передачи.

OpenSSH использует клиент-серверную модель. Система, к которой происходит соединение, называется сервером. Система, запрашивающая соединение, называется клиентом. Любая система может быть как SSH-сервером, так и SSH-клиентом. OpenSSH также имеет дополнительные преимущества, как X11 forwarding и port forwarding.

X11 forwarding, если включен и на сервере, и на клиенте, позволяет пользователям отображать графические приложения из системы, в которую они вошли, (server) в систему, из которой они зашли (client).

Port forwarding позволяет отправлять connection request на сервер, который форвардит(перенаправляет) этот request на другой сервер, который по сути принимает запрос.

В этой статье мы обсудим, как использовать OpenSSH, как для сервера, так и для клиента.

В нашем примере мы настроим ssh сервер и вызовем соединение с клиентской стороны. Мы будем использовать две системы: один Linux сервер и один Linux клиент.

Configure SSH server

Прежде всего для настройки и запуска OpenSSH сервера необходимо установить пакет openssh-server:

Но можно также установить OpenSSH командой:

В пакете ssh содержится как клиент, так и сервер, но при этом, скорее всего, будет установлен только сервер, т. к. клиент уже есть в Ubuntu по умолчанию.

При установке SSH-сервер автоматически прописывается в автозагрузку. Управлять его запуском, остановкой или перезапуском можно с помощью команд:

На старых системах используйте вместо этого:

Чтобы узнать статус сервиса воспользуйтесь следующей командой:

Аналогично на старых системах:

Для того, чтобы узнать версию OpenSSH, выполните:

Убрать или добавить сервис ssh в автозагрузку можно командами:

По умолчанию ssh сервис слушает 22 порт TCP/IP. В следующей части туториала мы научимся менять этот и многие другие параметры.

Итак, запустим наш SSH-сервер, так как у меня старая Debian Linux система на виртуалке, то будем использовать второй способ запуска:

Так как я сижу под root, то не использую sudo

Проверим статус ssh сервиса:

Все крутится. Теперь узнаем IP адрес нашей машины и перейдем к SSH-клиенту:

Напоследок узнаем версию ssh клиента:

Ого какая старая, ну да ладно, я же говорил, что древняя виртуалка

Configure SSH client

Обычно в Ubuntu уже встроен SSH-клиент, и вам не нужно ничего устанавливать, но если все-таки его нет, то установите пакет openssh-client:

Connecting

Утилита для подключения к удаленной системе в Linux называется, как неожиданно, ssh :).

Самая простая форма команды:

где remote_host в этом примере — IP адрес SSH-сервера или доменное имя, к которому вы пытаетесь подсоединиться.

Эта команда предполагает, что username на удаленной машине такой же, как и на вашей локальной машине.

Если username‘ы разные, то вы можете указать это, используя синтаксис:

После подключения к серверу вам, вероятно, будет предложено подтвердить свою личность с помощью ввода пароля.

Для возвращения к вашей локальной сессии просто наберите:

На этом пока все. Как всегда, если возникли турдности или вопросы, задавайте их в комментариях. В следующий раз я детально расскажу про настройку SSH-сервера.

SSH Command

Posted Dec 17, 2019

Secure Shell (SSH) is a cryptographic network protocol used for an encrypted connection between a client and a server. The ssh client creates a secure connection to the SSH server on a remote machine. The encrypted connection can be used to execute commands on the server, X11 tunneling, port forwarding, and more.

There are a number of SSH clients available both free and commercial, with OpenSSH being the most widely used client. It is available on all major platforms, including Linux, OpenBSD, Windows, macOS and others.

Читать еще:  Linux пароль по умолчанию

In this article, we will explain how to use the OpenSSH command-line client ( ssh ) to login to a remote machine and run commands or perform other operations.

Installing OpenSSH Client #

The OpenSSH client program is called ssh and can be invoked from the terminal. The OpenSSH client package also provides other SSH utilities such as scp and sftp that are installed alongside the ssh command.

Installing OpenSSH Client on Linux #

OpenSSH client is preinstalled on most Linux distributions by default. If your system doesn’t have the ssh client installed, you can install it using the package manager of your distribution.

Installing OpenSSH on Ubuntu and Debian #

Installing OpenSSH on CentOS and Fedora #

Installing OpenSSH Client on Windows 10 #

Most Windows users are using Putty to connect to a remote machine over SSH. However, the latest versions of Windows 10 include an OpenSSH client and server. Both packages can be installed via the GUI or PowerShell.

To find the exact name of the OpenSSH package, type the following command:

The command should return something like this:

Once you know the package name install it by running:

On success the output will look something like this:

Installing OpenSSH Client on macOS #

macOS ships with the OpenSSH client installed by default.

How to Use the ssh Command #

The following requirements must be met to be able to login into a remote machine via SSH:

  • An SSH server must be running on the remote machine.
  • The SSH port must be open in the remote machine firewall.
  • You must know the username and the password of the remote account. The account needs to have proper privileges for remote login.

The basic syntax of the ssh command is as follows:

To use the ssh command open your Terminal or PowerShell and type ssh followed by the remote hostname:

When you connect to a remote machine through SSH for the first time, you will see a message like below.

Each host has a unique fingerprint that is stored in the

Type yes to store the remote fingerprint, and you’ll be prompted to enter your password.

Once you enter the password, you will be logged into the remote machine.

When the username is not given, the ssh command uses the current system login name.

To log in as a different user, specify the username and the host in the following format:

The username can also be specified with the -l option:

By default, when no port is given, the SSH client will try to connect to the remote server on port 22. On some servers, administrators are changing the default SSH port to add an extra layer of security to the server by reducing the risk of automated attacks.

To connect on a non-default port, use the -p option to specify the port:

If you are experiencing authentication or connection issues, use the -v option to tell ssh to print debugging messages:

To increase the level of verbosity, use -vv or -vvv .

The ssh command accepts a number of options.

For a complete list of all options read the ssh man page by typing man ssh in your terminal.

SSH Config File #

If you are connecting to multiple remote systems over SSH on a daily basis, you’ll find that remembering all of the remote IP addresses, different usernames, non-standard ports, and various command-line options is difficult, if not impossible.

The OpenSSH client reads the options set in the per-user configuration file (

/.ssh/config ). In this file, you can store different SSH options for each remote machine you connect to.

A sample SSH config is shown below:

When you invoke the ssh client by typing ssh dev the command will read the

/.ssh/config file and use the connection details that are specified for the dev host. In this example, ssh dev is equivalent to the following:

For more information, check the article on SSH config file.

Public Key Authentication #

The SSH protocol supports various authentication mechanisms.

The public key-based authentication mechanism allows you to log in to the remote server without having to type your password.

This method works by generating a pair of cryptographic keys that are used for authentication. The private key is stored on the client device, and the public key is transferred to each remote server that you want to log in. The remote server must be configured to accept key authentication.

If you already don’t have SSH key pair on your local machine you can generate one by typing:

You will be asked to type a secure passphrase. Whether you want to use passphrase it’s up to you.

Once you have your key pair, copy the public key to the remote server:

Enter the remote user password, and the public key will be appended to the remote user authorized_keys file.

Once the key is uploaded, you can log in to the remote server without being prompted for a password.

By setting a key-based authentication, you can simplify the login process and increase the overall server security.

Port Forwarding #

SSH tunneling or SSH port forwarding is a method of creating an encrypted SSH connection between a client and a server machine through which services ports can be relayed.

SSH forwarding is useful for transporting network data of services that use an unencrypted protocol, such as VNC or FTP, accessing geo-restricted content or bypassing intermediate firewalls. Basically, you can forward any TCP port and tunnel the traffic over a secure SSH connection.

There are three types of SSH port forwarding:

Local Port Forwarding #

Local port forwarding allows you to forward a connection from the client host to the SSH server host and then to the destination host port.

To create a local port forwarding pass the -L option to the ssh client:

The -f option tells the ssh command to run in the background and -N not to execute a remote command.

Remote Port Forwarding #

Remote port forwarding is the opposite of local port forwarding. It forwards a port from the server host to the client host and then to the destination host port.

The -L option tells ssh to create a remote port forwarding:

Dynamic Port Forwarding #

Dynamic port forwarding creates a SOCKS proxy server that allows communication across a range of ports.

To create a dynamic port forwarding (SOCKS) pass the -D option to the ssh client:

For more detailed information and step-by-step instruction, check the article on How to Set up SSH Tunneling (Port Forwarding) .

Conclusion #

To connect to a remote server via SSH use the ssh command followed by the remote username and hostname ( ssh username@hostname ).

Knowing how to use the ssh command is an essential for managing remote server.

If you have any questions, please leave a comment below.

Ссылка на основную публикацию
Adblock
detector