Как найти порт ssh

I have an Ubuntu 10.04 server setup remotely that I setup a while back. While I recorded the username and password, I seem to have been clever and changed the usual ssh port from 22 to… something else.

How do I find out what that port might be?

I do have access to the server via the hosting company’s back door, so I can execute whatever Unix commands are needed — but I cannot log in using a normal putty shell on my machine.

Gilles 'SO- stop being evil''s user avatar

asked Aug 7, 2014 at 11:34

bharal's user avatar

1

First check on the config file which port is configured:

$ sudo grep Port /etc/ssh/sshd_config
Port 22

Then either restart ssh to make sure it loads the config you just saw or find out on which port ssh is running:

$ sudo netstat -tpln | egrep '(Proto|ssh)'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      12586/sshd

That’s a normal ssh running on port 22.

answered Aug 7, 2014 at 11:42

Marcos Dione's user avatar

4

If you have access to the server through other means, just run:

$ sudo grep Port /etc/ssh/sshd_config 
Port NNN

That will return a line like the one shown above where NNN will be the port you chose.

Faheem Mitha's user avatar

Faheem Mitha

34.4k32 gold badges118 silver badges183 bronze badges

answered Aug 7, 2014 at 11:39

terdon's user avatar

terdonterdon

231k64 gold badges438 silver badges653 bronze badges

The easier way is just looking at the SSH server configuration files:

➜  ~  sudo grep Port /etc/ssh/sshd_config 
   Port 22

There’s also checking for listening ports per process with lsof:

sudo lsof -Pi | grep ssh

or any other ports listing command like netstat -lntu.

answered Aug 7, 2014 at 11:45

Braiam's user avatar

BraiamBraiam

35.1k25 gold badges107 silver badges165 bronze badges

If you don’t have login access to the server, you can find the SSH port using nmap‘s «version scan» feature:

nmap -sV -p- <insert target's IP here>

The -sV option means «version scan», and -p- means «scan all ports». If you’ve got a good connection and are sure you won’t be upsetting someone’s firewall or IDS, you can add -T5 for «scan as fast as possible». The results will look something like this:

PORT     STATE SERVICE VERSION
1422/tcp open  ssh      (protocol 2.0)

answered Aug 8, 2014 at 1:17

Mark's user avatar

MarkMark

3,9743 gold badges26 silver badges38 bronze badges

If you don’t have access to the server’s console, you’ll have to probe all the ports from a distant host. These utilities are like nmap, however the network layer must relay traffic to the specific combination of host (IP address) AND port.

Faheem Mitha's user avatar

Faheem Mitha

34.4k32 gold badges118 silver badges183 bronze badges

answered Aug 7, 2014 at 11:42

Archemar's user avatar

ArchemarArchemar

30.9k18 gold badges66 silver badges104 bronze badges

$ sudo netstat -lntp
[sudo] password for XXX:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address    Foreign Address  State        PID/Program name
tcp   0      0      0.0.0.0:22       0.0.0.0:*        LISTEN       2799/sshd
tcp6  0      0      :::22            :::*             LISTEN       2799/sshd

HalosGhost's user avatar

HalosGhost

4,70410 gold badges32 silver badges40 bronze badges

answered Aug 8, 2014 at 2:44

MJD's user avatar

Если вы не проводили никаких манипуляций со своим портом, то, скорее всего, номер порта SSH у вас стандартный — 22.

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

  • управление пользовательскими данными на сервере;
  • служебный запуск команд;
  • консольный режим работы с базой данных;
  • и др.

Из чего состоит протокол SSH

Протокол SSH состоит из 2-х основных компонентов:

  1. Клиент SSH;
  2. Сервер SSH.

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

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

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

Ка посмотреть номер открытого порта SSH

Чтобы посмотреть номер открытого порта SSH, можно использовать различные утилиты, предназначенные для этого. Самые популярные из них мы приведем чуть ниже.

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

  1. NetStat. Определяет открытый порт протокола SSH и все соединения в сети в онлайнрежиме.
  2. SS. Данная программка работает непосредственно с подсистемами ядер, поэтому осуществляет свою работу несколько быстрее и точнее своих конкурентов. Но если вы хотите посмотреть только номер открытого порта, то скорость ее работы не имеет большой важности.
  3. Lsoft. Также легко покажет номер любого порта SSH и не только.
  4. Nmap. Делает то же самое, что и предыдущие, но сам по себе является мощным сетевым сканером, который профессионально тестирует и сканирует вашу сеть.
  5. Zenmap. По сути этот же Nmap с абсолютно с той же функциональностью. Но различие в том, что здесь добавляется удобный визуальный интерфейс.

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

Как поменять номер порта SSH на другой?

Как мы уже говорили в самом начале, по умолчанию используется 22-й порт. Но это не очень хорошо с точки зрения безопасности. Так как стандартный номер порта SSH сильно повышает риск брутфорс-атак. Поэтому смена порта со стандартного немного повышает безопасность вашего сетевого соединения. Обычно конфигурация портов находится по следующему пути настройки сервера: «/etc/ssh/sshd_config».

Чтобы поменять номер порта SSH, нужно:

  1. Проверить список открытых портов одной из утилит, предложенных выше, чтобы не занимать уже и так открытые порты.
  2. Подключиться к серверу с рут-правами по SSH.
  3. Открыть файл sshd_config любым имеющимся редактором текста.
  4. Найти запись «port 22» или любую другую, которую хотите изменить.
  5. Изменить на нужный номер порта SSH и сохранить.
  6. Перезагрузить сервер, чтобы новые конфигурации заработали.

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

Часто вам может понадобиться найти имена портов и номера по некоторым причинам.

Если это так, вам повезло.

Сегодня в этом кратком уроке мы увидим самые простые и быстрые способы найти номер порта службы в Unix-подобных операционных системах.

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

Найти номер порта по службе Linux

Метод 1 – Использование команды Grep:

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

$ grep <port> /etc/services

Например, чтобы найти порт по умолчанию службы SSH, просто запустите:

$ grep ssh /etc/services

Эта команда должна работать в большинстве дистрибутивов Linux.

Вот пример вывода из тестового окна Arch Linux:

ssh 22/tcp
ssh 22/udp
ssh 22/sctp
sshell 614/tcp
sshell 614/udp
netconf-ssh 830/tcp
netconf-ssh 830/udp
sdo-ssh 3897/tcp
sdo-ssh 3897/udp
netconf-ch-ssh 4334/tcp
snmpssh 5161/tcp
snmpssh-trap 5162/tcp
tl1-ssh 6252/tcp
tl1-ssh 6252/udp
ssh-mgmt 17235/tcp
ssh-mgmt 17235/udp

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

Найдем номер порта веб-сервера Apache.

Для этого введите:

$ grep http /etc/services
# http://www.iana.org/assignments/port-numbers
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
http 80/sctp # HyperText Transfer Protocol
https 443/tcp # http protocol over TLS/SSL
https 443/udp # http protocol over TLS/SSL
https 443/sctp # http protocol over TLS/SSL
gss-http 488/tcp
gss-http 488/udp
webcache 8080/tcp http-alt # WWW caching service
webcache 8080/udp http-alt # WWW caching service
[...]

Как насчет номера порта FTP? Это легко!

$ grep ftp /etc/services
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
tftp 69/tcp
[...]

Метод 2 – Использование команды getent

Как вы можете видеть, приведенные выше команды показывают все имена портов и номера для данного поискового термина «ssh», «http» и «ftp».

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

Однако вы можете сузить результат до точного вывода с помощью команды «getent», как показано ниже:

$ getent services ssh
ssh 22/tcp
$ getent services http
http 80/tcp www www-http
$ getent services ftp
ftp 21/tcp

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

$ getent services 80
http 80/tcp

Чтобы отобразить все имена портов и номера, просто запустите:

$ getent services

Способ 3 – Использование утилиты Whatportis

Whatportis – простой скрипт python, используемый для поиска имен портов и номеров. В отличие от вышеприведенных команд, эта утилита отображает вывод в хорошем табличном формате столбца.

Убедитесь, что вы установили диспетчер пакетов PIP.

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

$ pip install whatportis

Теперь вы можете найти, какой порт связан с сервисом, как показано ниже.

$ whatportis ssh
$ whatportis ftp
$ whatportis http

Пример вывода с моего сервера CentOS 7:

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

$ whatportis mysql --like

Вышеупомянутые команды помогли вам найти, какой порт связан с сервисом. Вы также можете найти, какая cлужба связана с номером порта, как показано ниже.

$ whatportis 993

Вы даже можете отображать результаты в формате JSON.

$ whatportis 993 --json

i’m creating a local simulator (not connected to internet) using SSH connection. I’ve started sshd on a particular range of port numbers and NATing a range of devices to those. I have to find the currently connected port number.

OS CentOS 5.5
OpenSSH 6.1

I’ve done the following. It works for normal usage (manual user).But when trying a rigorous testing(automated) it seems like it is failing sometimes to find the port number.

#!/bin/bash

WHOINFO=`who -m`

USERNAME=`echo $WHOINFO | awk 'NR==1{print $1}'`
PTSNUMBER=`echo $WHOINFO | awk 'NR==1{print $2}'`

USERSTR=$USERNAME"@"$PTSNUMBER

PID=`ps -eLf | grep $USERSTR | awk 'NR==1{print $3}'`

if [ -z "$PID" ];
then
        exit
fi

PORTSTR=`netstat -natp | grep $PID | awk 'NR==1{print $4}'`

PORTNUMBER=${PORTSTR//*:/}

echo $PORTNUMBER

asked May 9, 2013 at 6:55

Antarus's user avatar

1

An OpenSSH server will set the variable $SSH_CLIENT, which contains the current ip, client port and server port separated by spaces:

$ echo "$SSH_CLIENT"
127.0.0.1 59064 22

To get the port number the current session is connected to, you can therefore use echo ${SSH_CLIENT##* }.

answered May 9, 2013 at 7:42

that other guy's user avatar

that other guythat other guy

116k11 gold badges168 silver badges193 bronze badges

2

Содержание

  1. Как найти номер порта у службы Linux
  2. Найти номер порта по службе Linux
  3. Как проверить, работает ли SSH в Linux?
  4. SSH работает в Linux
  5. SSH процесс
  6. SSH порт
  7. SSH сервис
  8. Остановка SSH
  9. Запуск SSH
  10. Как узнать, какой номер порта используется процессом в Linux?
  11. Метод-1: Использование команды ss
  12. Способ-2: Использование команды netstat
  13. Метод-3: использование команды lsof
  14. Метод-4: Использование команды fuser
  15. Метод-5: Использование команды nmap
  16. Метод-6: Использование команды systemctl
  17. Как пользоваться SSH
  18. Базовый синтаксис
  19. Опции команды SSH
  20. Настройка сервера SSH
  21. Порт ssh
  22. Протокол SSH
  23. Рут доступ
  24. Доступ только определенного пользователя к SSH
  25. Выполнение X11 приложений
  26. Использование SSH
  27. Подключение к серверу
  28. Выполнить команду
  29. Выполнить локальный скрипт
  30. Бекап на удаленный сервер и восстановление
  31. Аутентификация без пароля
  32. Взять пароль из локального файла
  33. Изменить приветствие SSH
  34. Смотрим неудачные попытки входа SSH
  35. Передача файлов по SSH
  36. Запуск графических приложений по ssh
  37. Завершение сессии SSH
  38. Туннели SSH
  39. Выводы
  40. 105 команд для работы с сервером Linux по SSH
  41. Подключение к серверу через SSH
  42. Если у вас macOS или Linux
  43. Если у вас Windows
  44. Управление протоколом SSH
  45. Работа с командной строкой, горячие клавиши и дополнительные символы
  46. Дополнительные символы
  47. Горячие клавиши
  48. Сетевые функции и параметры сервера

Как найти номер порта у службы Linux

linux 154766 640

Часто вам может понадобиться найти имена портов и номера по некоторым причинам.

Если это так, вам повезло.

Сегодня в этом кратком уроке мы увидим самые простые и быстрые способы найти номер порта службы в Unix-подобных операционных системах.

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

Найти номер порта по службе Linux

Метод 1 – Использование команды Grep:

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

Например, чтобы найти порт по умолчанию службы SSH, просто запустите:

Эта команда должна работать в большинстве дистрибутивов Linux.

Вот пример вывода из тестового окна Arch Linux:

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

Найдем номер порта веб-сервера Apache.

Как насчет номера порта FTP? Это легко!

Метод 2 – Использование команды getent

Как вы можете видеть, приведенные выше команды показывают все имена портов и номера для данного поискового термина «ssh», «http» и «ftp».

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

Однако вы можете сузить результат до точного вывода с помощью команды «getent», как показано ниже:

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

Чтобы отобразить все имена портов и номера, просто запустите:

Способ 3 – Использование утилиты Whatportis

Источник

Как проверить, работает ли SSH в Linux?

SSH — это криптографический сетевой протокол, который позволяет управлять удаленным компьютером и изменять его через Интернет. Этот протокол обеспечивает безопасность даже в уязвимой сети. Большинство дистрибутивов Linux используют OpenSSH, проект с открытым исходным кодом, реализующий протокол SSH.

В этом руководстве мы продемонстрируем, как проверить, работает ли SSH в Linux.

SSH работает в Linux

Есть несколько методов, чтобы определить, работает ли SSH в системе в данный момент.

Обратите внимание, что SSH разделен на две части с точки зрения функциональности: SSH-клиент и SSH-сервер. Клиент подключается к серверу по протоколу SSH. Ключ SSH — это стандартная мера безопасности для защиты соединения.

Если SSH установлен и включен, то, вероятно, сервер SSH запущен и работает в системе, ожидая запроса на соединение SSH. Мы можем определить, работает ли SSH-сервер, но он не дает информации о том, активно ли SSH-соединение. Мы можем проверить это, если порт SSH в настоящее время открыт.

SSH процесс

Это первый шаг к проверке того, работает ли SSH в данный момент. Мы ищем статус процесса sshd. В этом руководстве подробно описана работа с процессами Linux.

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

В зависимости от состояния процесса вывод будет отличаться.

SSH порт

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

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

Чтобы проверить список открытых портов, мы будем использовать инструмент netstat. Это специальный инструмент для печати различной сетевой информации, такой как сетевые соединения, таблицы маршрутизации, статистика интерфейса и т. Д. Это руководство демонстрирует всестороннее использование netstat.

Следующая команда проверяет, прослушивает ли SSH порт 22. Если SSH настроен на прослушивание другого порта, используйте этот порт.

Альтернативный метод проверки открытых портов — это проверка файла порта. Следующая команда распечатает список всех открытых файлов портов.

Другой способ — подключиться к порту SSH через Telnet.

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

SSH сервис

Служба SSH управляет состоянием функции. Следующая команда распечатает статус службы SSH.

Остановка SSH

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

Следующая команда остановит службу SSH.

Запуск SSH

Если SSH не запущен, запустите службу SSH. Он должен загрузить все компоненты и быть готовым принимать соединения SSH.

Источник

Как узнать, какой номер порта используется процессом в Linux?

1 12

Как администратор Linux, вы должны знать, является ли соответствующая служба обязательной / прослушивающей с правильным портом или нет.

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

Порт – это логическое соединение, которое идентифицирует конкретный процесс в Linux.

Доступны два вида порта: физическое и программное обеспечение.

Поскольку операционная система Linux является программным обеспечением, мы собираемся обсудить порт программного обеспечения.

Программный порт всегда связан с IP-адресом хоста и соответствующим типом протокола для связи. Порт используется для распознования приложения.

Большинство служб, связанных с сетью, должны открыть сокет для прослушивания входящих сетевых запросов.

Socket уникален для каждого сервиса.

Сокет – это комбинация IP-адреса, программного порта и протокола.

Область номеров портов доступна для протокола TCP и UDP.

Протокол управления передачей (TCP) и протокол пользовательских дейтаграмм (UDP) используют номера портов для связи.

Это значение от 0 до 65535.

Ниже приведены категории присвоений портов.

Вы можете проверить детали зарезервированных портов в файле /etc/services в Linux.

Это может быть достигнуто с использованием шести методов.

Метод-1: Использование команды ss

ss используется для вывода статистики сокетов.

Он позволяет отображать информацию, аналогичную netstat.

Он может отображать больше информации о TCP и его состоянии, чем другие инструменты.

Он может отображать статистику для всех типов сокетов, таких как PACKET, TCP, UDP, DCCP, RAW, домен Unix и т. д.

В качестве альтернативы вы также можете проверить это с помощью номера порта.

Способ-2: Использование команды netstat

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

По умолчанию netstat отображает список открытых сокетов.

Если вы не укажете каких-либо семейств адресов, будут выведены активные сокеты всех сконфигурированных семейств адресов.

Эта программа устарела. Замена для netstat – ss.

В качестве альтернативы вы также можете проверить это с помощью номера порта.

Метод-3: использование команды lsof

lsof – список открытых файлов.

Команда lsof Linux выводит информацию о файлах, открытых для процессов, запущенных в системе.

В качестве альтернативы вы также можете проверить это с помощью номера порта.

Метод-4: Использование команды fuser

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

Метод-5: Использование команды nmap

Nmap («Network Mapper») – это инструмент с открытым исходным кодом для проверки сети и проверки безопасности.

Он был разработан для быстрого сканирования больших сетей, хотя он отлично работает с одиночными хостами.

Nmap использует необработанные IP-пакеты в новых способах определения того, какие хосты доступны в сети, какие службы (имя и версия приложения) эти хосты предлагают, какие операционные системы (и версии ОС) они запускают, какие типы фильтров пакетов / брандмауэры используются, и десятки других характеристик

Метод-6: Использование команды systemctl

systemctl – Управление системой systemd и менеджером сервисов.

Это замена старого системного управления SysV, и большинство современных операционных систем Linux были адаптированы под systemd.

Вышеприведенный пример будет показывать фактический порт прослушивания службы SSH при запуске службы SSHD в последнее время.

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

Источник

Как пользоваться SSH

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

Базовый синтаксис

Синтаксис команды выглядит следующим образом:

$ ssh [опции] имя пользователя @ сервер [команда]

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

Опции команды SSH

Теперь давайте рассмотрим самые основные опции команды ssh:

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

/.ssh/config но здесь мы это тоже подробно рассматривать не будем.

Настройка сервера SSH

Настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Многие из них мы тоже трогать не будем. Рассмотрим только самые интересные. Сначала откройте файл /etc/ssh/sshd.conf

Порт ssh

По умолчанию ssh работает на порту 22. Но такое поведение небезопасно, поскольку злоумышленник знает этот порт и может попробовать выполнить Bruteforce атаку для перебора пароля. Порт задается строчкой:

Поменяйте значение порта на нужное.

Протокол SSH

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

И приведите ее к такому виду:

Рут доступ

По умолчанию Root доступ по ssh разрешен, но такое поведение очень небезопасно, поэтому раскомментируйте строчку:

Доступ только определенного пользователя к SSH

Мы можем разрешить доступ к ssh только для определенного пользователя или группы. Для этого добавьте строчки:

AllowUsers User1, User2, User3
AllowGroups Group1, Group2, Group3

Выполнение X11 приложений

Не все знают но есть возможность использовать ssh для запуска полноценных X11 приложений. Об этом мы поговорим ниже, но чтобы все заработало необходимо разрешить эту возможность на стороне сервера, добавьте такую строчку:

Основные опции рассмотрели, перед тем как переходить дальше, не забудьте перезагрузить ssh сервер чтобы сохранить изменения:

service sshd restart

Использование SSH

Подключение к серверу

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

Выполнить команду

Мы привыкли подключаться к удаленному серверу, а уже потом выполнять нужные команды, но на самом деле утилита ssh позволяет сразу выполнить нужную команду без открытия терминала удаленной машины. Например:

Выполнит команду ls на удаленном сервере и вернет ее вывод в текущий терминал.

Выполнить локальный скрипт

Выполним интерпретатор bash на удаленном сервере и передадим ему наш локальный скрипт с помощью перенаправления ввода Bash:

Бекап на удаленный сервер и восстановление

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

sudo dd if=/dev/sda | ssh user@host ‘dd of=sda.img’

Теперь чтобы восстановить состояние диска из сделанной копии выполните:

ssh user@host ‘dd if=sda.img’ | dd of=/dev/sda

Здесь и выше /dev/sda имя файла вашего жесткого диска.

Аутентификация без пароля

Настроить такое поведение очень легко. Сначала создайте ключ командой:

Затем отправляем ключ на сервер:

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

Взять пароль из локального файла

Изменить приветствие SSH

При входе по ssh может выводиться приветствие, изменить его очень легко. За это отвечает файл /etc/issue. Просто откройте этот файл и введите нужный текст:

Смотрим неудачные попытки входа SSH

Хотите посмотреть были ли попытки неудачного доступа по ssh к вашему серверу и с каких IP адресов? Запросто, все запросы логируются в файл /var/log/secure, отфильтруем только нужные данные командой:

cat /var/log/secure | grep «Failed password for»

Передача файлов по SSH

Кроме выполнения команд, можно копировать файлы по ssh. Для этого используется утилита scp. Просто укажите файл, который нужно передать, удаленный сервер и папку на сервере, вот:

$ scp /адрес/локального/файла пользователь@ хост: адрес/папки

Кроме утилиты scp, передача файлов ssh может быть выполнена более хитрым способом. Прочитаем файл и с помощью cat, передадим, а там сохраним поток в файл:

cat localfile | ssh user@host «cat > remotefile»

ssh user@host «cat > remotefile»

Пойдем еще дальше, вы можете сжимать файлы перед передачей с помощью tar, а потом их сразу же на лету распаковывать:

Такое копирование файлов ssh позволяет отправлять сразу целые папки.

Запуск графических приложений по ssh

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

Затем просто выполняем команду запуска графического приложения на удаленном сервере вот таким образом:

Завершение сессии SSH

В файл /etc/ssh/ssh_config. Теперь, чтобы разорвать SSH соединение достаточно нажать Enter и набрать:

Другие управляющие символы можно узнать нажав:

Туннели SSH

С помощью SSH туннелей вы можете пробросить порт с удалённого сервера на локальную машину. Это очень полезно, в первую очередь, для разработчиков. Для того чтобы пробросить порт с удалённой машины локальной используйте опцию -L и такой синтаксис:

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

Snimok ekrana ot 2020 08 15 13 58 44

Теперь локальная база данных на порту 3306 будет доступна на удалённом сервере при обращении к порту 5555.

Выводы

Теперь вы знаете как пользоваться SSH. Как видите, технология SSH позволяет сделать намного больше чем можно предположить с первого взгляда, и это еще далеко не все. Какие интересные возможности SSH используете вы при повседневной работе? Поделитесь в комментариях!

Источник

105 команд для работы с сервером Linux по SSH

daae4a9c4bb22602ede1297aaa7ce700

SSH — это протокол для установки связи между PC и сервером. Команды SSH, или как их еще называют «команды для PuTTY», — это инструкции для управления различными функциями сервера. С технической точки зрения, это примерно то же самое, что управлять компьютером на базе Linux через терминал. Принципиальное отличие лишь в том, что для управления сервером сначала нужно установить с ним дистанционное соединение, а уже потом переходить к работе. На локальной «машине» этот этап можно пропустить. Но речь не о ней, и мы снова возвращаемся к SSH.

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

Подключение к серверу через SSH

Мы уже выяснили, что представляет собой SSH и команды для него. Теперь установим соединение с сервером.

Естественно, перед началом надо арендовать виртуальный хостинг или VDS у одного из доступных провайдеров. У Timeweb, к примеру.

Если у вас macOS или Linux

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

Если у вас Windows

putty 1

Управление протоколом SSH

У команды для подключения к удаленному PC по SSH есть две важных опции:

Работа с командной строкой, горячие клавиши и дополнительные символы

Базовые методы управления текстом в терминале.

clear — удаляет из текущий сессии терминала все ранее выведенные в него данные, содержимое открытых документов и историю использованных команд. Используется, когда нужно четко лицезреть вывод конкретной операции.

history — показывает ранее использованные приложения и инструменты. Без дополнительных аргументов отображает 10 элементов. Но их количество можно изменить вручную, добавив к слову history любое число. history 13, к примеру.

history

whatis — дает однострочную справку к любой из установленных программ. Принцип работы следующий: вводим слово whatis, а за ним следом название приложения, о котором хотим узнать. Например, чтобы узнать о том, что такое nano, введем в терминал: whatis nano.

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

Дополнительные символы

Не совсем команды, но тоже текстовые элементы, причем полезные.

; — разделитель, необходимый, чтобы активировать сразу несколько команд подряд. Это выглядит так: cd

/Documents; mkdir Novaya_papka; rmdir Staraya-papka. Команды будут выполняться друг за другом независимо от результата выполнения каждой из них.

&& — то же самое, что и ;, но с важным нюансом. Команды, соединенные с помощью &&, будут выполняться друг за другом, только если предыдущая завершилась успешно. Синтаксис аналогичный:

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

— сокращение от /home/имя учетной записи/. Часто фигурирует в инструкциях.

Горячие клавиши

Парочка полезных сочетаний клавиш.

Стрелка вверх — показывает предыдущую команду.

Ctrl+C — прерывает запущенный процесс.

Ctrl+A — перемещает курсор в начало строки.

Ctrl+E — перемещает курсор в конец строки.

Сетевые функции и параметры сервера

Утилиты и инструменты для вебмастеров и администраторов.

apachectl startssl — запускает сервер Apache (если вы его используете, конечно).

apachectl stop — выключает Apache.

apachectl restart — перезапускает Apache.

/usr/local/etc/rc.d/mysql-server restart — активирует скрипт перезапуска системы MySQL.

Источник

Понравилась статья? Поделить с друзьями:

Не пропустите также:

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

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии