Linux check ssh connections

5 simple methods to test ssh connection in Linux & Unix

Table of Contents

In this article I will share different commands and methods to Test SSH connection in Linux and Unix with real time practical examples.

Method 1: Use timeout with bash utility to test SSH connection

/usr/bin/timeout utility is installed by default in most distros which is part of coreutils rpm in Linux

Check if coreutils is installed on your server

We can use bash utility with timeout to test SSH connection by checking port 22 status.
If you are using a different port for 22 then you can replace it in the below syntax

Syntax:

Here server2 is my target host, I will execute the command with a timeout value of 5s on port 22

If the exit status is 0 , it means test ssh connection was successful

Or if you get «connection refused» with non-zero exit status then test SSH connection has failed

Shell Script Example

We can use this tool in a shell script to test SSH connection over port 22

Method 2: Use nmap to test SSH connection

  • /usr/bin/nmap is provided by nmap rpm.
  • nmap is widely used to check port status so we can use nmap to check port 22 status on target host
  • nmap is not installed by default in most distros and you must install it before using it
  • On RHEL/CentOS environment use yum or dnf to install nmap

Syntax:

Here server2 is my target host and we are looking for nmap port status

Shell script Example

We can use this command in our shell script to test SSH connection over port 22

Method 3: Use netcat or nc to test SSH connection

  • In my earlier article I had shared the steps to use nc and ncat to transfer files between Linux server.
  • We can also use nc and ncat utility to check port status from target hosts and test SSH connection
  • nc and ncat is provided by nmap-ncat rpm

To check if nmap-ncat is installed on your server

Syntax:

Here we have defined a connection timeout period of 5 second which you can change based on your environment

Check the exit status of nc command in this command. For 0 exit status we know that port 22 is open and SSH connection will be successful.

For non-zero exit status we know that SSH connection will fail for respective target host

Shell Script Example

We can use this command in our shell script example to automate the verification

Method 4: Use SSH to check SSH connection

  • I know we are looking for SSH alternatives to check SSH connection but if you have a setup configured with password less connection then you can also use SSH for this verification
  • We will use ConnectTimeout to make sure our SSH don’t get stuck waiting for connection to become active
  • StrictHostKeyChecking is used to avoid any security and fingerprint prompt
  • If BatchMode is yes then passphrase/password querying will be disabled

Here we are using ‘ exit 0 ‘ as the remote command to be called on successful SSH

Читайте также:  Linux route add debian

While if the output exit status is non-zero so we know the test SSH connection has failed

Shell Script Example

We can use this command in our existing shell script for automation purpose:

Method 5: Use telnet to test SSH connection

  • telnet is another very handy tool to check port status
  • /usr/bin/telnet is provided by telnet rpm which is part of default repositories and you do not need any third party repository

Check if telnet is installed

Syntax:

But since our end goal is to automate so we will tweak the syntax

Let us use this to test SSH connection in Linux. if we are able to grep for «Connected» then port 22 is reachable and SSH connection is possible

If we get a non-zero exit status , this means that we were unable to grep «Connected» in the output hence SSH connection is not possible

Shell Script Example

We will use telnet with our existing sample shell script to test SSH connection

Conclusion

In this tutorial guide we learned about different internal tools within Linux and Unix which can be used to test and verify SSH connection before actually attempting the SSH. We do not need to rely on additional third party tools for such verification. It is always a good idea to first check the network connectivity and port 22 availability before performing the SSH to avoid un-necessary wait time and timeout scenarios

Lastly I hope the commands from this article to test SSH connection on Linux and Unix was helpful. So, let me know your suggestions and feedback using the comment section.

References

I have used below external references for this tutorial guide
How to create a bash script to check the SSH connection?

Didn’t find what you were looking for? Perform a quick search across GoLinuxCloud

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

For any other feedbacks or questions you can either use the comments section or contact me form.

Thank You for your support!!

9 thoughts on “5 simple methods to test ssh connection in Linux & Unix”

Really Loved these examples
Was really very Helpful
Thanks buddy 👍🏻👍🏻👍🏻

It’s very helpful. Thanks a lot

For method 4 you can use “-o NumberOfPasswordPrompts=0” so it doesn’t prompt for password in case key auth is not accepted

Thanks for sharing

Here is an improved version that scans a range of ip’s, checks for ssh password-less auth and prints hostname as well

My view is rather than using SSH just to verify the connectivity would be resource intensive and time consuming. SSH method is well suited only when we plan to do SSH and as a pre-check we use this method to make sure SSH session doesn’t get stuck forever waiting for the connection.

What about using ssh-keyscan ? then you know if you get a key it means is ready for ssh connection

ssh-keyscan is another utility similar to SSH which performs connection to remote host. So the problem may remain the same if the utility gets stuck so ssh-keyscan has it’s own timeout argument ( -T ).

It all actually depends on end user’s requirement.

Источник

6 commands to check and list active SSH connections in Linux

Table of Contents

How to check active SSH connections in Linux. Show SSH connection history. How to show active ssh sessions in Linux. List all the active SSH connections in Unix. Find out all the currently active ssh connections on any Linux node. Which all tools can be used to list all the active ssh connections in Linux. Show active SSH sessions. Check ssh connection history using log files in Linux.

Some more more articles you may be interested on similar topics:

Check active SSH connections

There are various commands and tools available in Linux which can be used to check active SSH connections or sessions on your Linux node. In this article I will share a list of tools which can be used to get the list of active SSH connections. If you are aware of any more commands to show active ssh sessions then please let me know via comment section.

Читайте также:  Vpn для linux manjaro

1. Using ss command

ss is used to dump socket statistics. It allows showing information similar to netstat . It can display more TCP and state information than other tools. We will use grep function to only get the list of active SSH sessions on our local host

From the above example we know that there are three hosts which are currently connected to our node3. We have active SSH connections from 10.0.2.31, 10.0.2.30 and 10.0.2.2

2. Using last command

last searches back through the file /var/log/wtmp (or the file designated by the -f flag) and displays a list of all users logged in (and out) since that file was created. Names of users and tty’s can be given, in which case last will show only those entries matching the arguments.

Using this command you can also get the information about the user using which the SSH connection was created between server and client. So below we know the connection from 10.0.2.31 is done using ‘deepak‘ user, while for other two hosts, ‘root‘ user was used for connecting to node3.

Here I am grepping for a string «still» to get all the patterns with » still logged in «. So now we know we have three active SSH connections from 10.0.2.31, 10.0.2.30 and 10.0.2.2

3. Using who command

who is used to show who is logged on on your Linux host. This tool can also give this information

Using this command we also get similar information as from last command. Now you get the user details used for connecting to node3 from source host, also we have terminal information on which the session is still active.

4. Using w command

w displays information about the users currently on the machine, and their processes. This gives more information than who and last command and also serves our purpose to get the list of active SSH connections. Additionally it also gives us the information of the running process on those sessions.

Using w command you will also get the idle time details, i.e. for how long the session is idle. If the SSH session is idle for long period then it is a security breach and it is recommended that such idle SSH session must be killed, you can configure your Linux host to automatically kill such idle SSH session.

5. Using netstat command

Similar to ss we have netstat command to show active ssh sessions. Actually we can also say that ss is the new version of netstat. Here we can see all the ESTABLISHED SSH sessions from remote hosts to our localhost node3. it is also possible that one or some of these active ssh connections are in hung state so you can configure your host to automatically disconnect or kill these hung or unresponsive ssh sessions in Linux.

Источник

How to check if SSH is running on Linux?

Question – I need to check whether SSH (sshd) is running on my Linux machine. I have a Debian Linux distribution. How can I tell if my OpenSSH server is running?

There are several ways to check whether SSH is running. The sshd daemon is the process that runs the OpenSSH ssh server.

First Check if the process sshd is running:

This will output something like the following if it finds the process called sshd:

So sshd is running with process ID 1399! It is indeed running!

Second, check if the process sshd is listening on port 22:

If ssh is listening on port 22, you will get the following:

Читайте также:  Linux mint мониторинг трафика

So the process with ID 1399 (sshd) is listening on port 22! The second test passed!

Third, you can use the lsof command to check if the port 22 TCP file is open:

So sshd (SSH daemon) and httpd (Apache web server daemon) are both running and listening on the ssh and http ports respectively! Third test passed.

Four, try to telnet to port 22:

If the port is open, you will get the following output:

If the port number 22 is not open, you will get the following:

Five, check the status of the sshd service:

If you use CentOS or Red Hat:

If you use Debian or Ubuntu (or CentOS or RedHat):

So these were five interesting methods in which you could check if the SSH OpenSSH server is running and listening on port 22. If the process sshd is misbehaving or not listening on port 22, one of these methods will surely fail and you should start or restart sshd using the following command:

Источник

Как проверить, работает ли 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 настроен на запуск при загрузке. Если в настоящий момент нет необходимости в использовании SSH, мы можем его остановить. Обратите внимание, что для изменения службы требуется учетная запись root или пользователь без полномочий root с привилегиями sudo.

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

Запуск SSH

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

Источник

Оцените статью