= gerrit show-connections

== NAME
gerrit show-connections - Display active client SSH connections.

== SYNOPSIS
[verse]
--
_ssh_ -p <port> <host> _gerrit show-connections_
  [--numeric | -n]
--

== DESCRIPTION
Presents a table of the active SSH connections, the users who
are currently connected to the internal server and performing
an activity.

== ACCESS
Caller must be a member of the privileged 'Administrators' group,
or have been granted
link:access-control.html#capability_viewConnections[the 'View Connections' global capability].

== SCRIPTING
Intended for interactive use only.

== OPTIONS
--numeric::
-n::
	Show client hostnames as IP addresses instead of DNS hostname.

--wide::
-w::
	Do not format the output to the terminal width (default of
	80 columns).

== DISPLAY

Session::
	Unique session identifier on this server.  Session
	identifiers have a period of 2^32-1 and start from a
	random value.

Start::
	Time (local to the server) that this connection started.
	Only shown for MINA backend.

Idle::
	Time since the last data transfer on this connection.
	Note that most SSH clients use not only a TCP based
	connection keep-alive, but also an encrypted keep alive
	higher up in the SSH protocol stack.  That higher keep
	alive resets the idle timer, about once a minute.
	Only shown for MINA backend.

User::
	The username of the account that is authenticated on this
	connection.  If the -n option is used, this column shows
	the Account Id instead.

Remote Host::
	Reverse lookup hostname, or if -n option is used, the remote
	IP address.

== EXAMPLES

With reverse DNS lookup (default):
----
$ ssh -p 29418 review.example.com gerrit show-connections
Session     Start     Idle   User            Remote Host
--------------------------------------------------------------
3abf31e6 20:09:02 00:00:00  jdoe            jdoe-desktop.example.com
--
----

Without reverse DNS lookup:
----
$ ssh -p 29418 review.example.com gerrit show-connections -n
Session     Start     Idle   User            Remote Host
--------------------------------------------------------------
3abf31e6 20:09:02 00:00:00  a/1001240       10.0.0.1
--
----

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
