Port 22: the port of the SSH protocol

Port 22 is a well-known port number used in computer networking. It is specifically associated with the Secure Shell (SSH) protocol, which is commonly used for secure remote administration and secure file transfer over an unsecured network.

What is Port 22 used for?

Here are some key points about port 22 and its significance.

Secure Shell (SSH): SSH is a cryptographic network protocol that provides secure communication between networked devices. It establishes an encrypted connection, allowing users to remotely access and administer systems securely. SSH is widely used in various operating systems, including Unix, Linux, and macOS.

Secure Remote Administration: Port 22 is primarily used for secure remote administration of systems. It enables system administrators to securely log in to remote servers or devices and perform administrative tasks. With SSH, administrators can access a command-line interface or execute remote commands securely.

Security and ports

In addition to remote administration, SSH also facilitates secure file transfer between devices. It provides a secure alternative to traditional file transfer methods like FTP (File Transfer Protocol) by encrypting the data being transferred. Users can securely copy files to or from remote servers using tools like SCP (Secure Copy) or SFTP (Secure File Transfer Protocol) over port 22.

Port 22 is part of the TCP/IP protocol suite, which is the foundation of the modern internet. TCP/IP uses port numbers to identify specific services or applications running on devices connected to a network. Port 22 is the designated port for SSH, allowing devices to establish secure connections for remote administration and file transfer.

It’s important to note that port 22 must be open and accessible on the network for SSH connections to be established. In some cases, firewalls or network security measures may block or restrict access to port 22 for security reasons. Administrators and users should ensure that the necessary network configurations and firewall rules are in place to allow SSH connections if required.

In summary, port 22 is associated with the Secure Shell (SSH) protocol, which is widely used for secure remote administration and secure file transfer. It provides encrypted communication and authentication mechanisms for secure access to remote systems and secure file transfers over unsecured networks.

How Secure Shell (SSH) work on port 22?

Secure Shell (SSH) works on port 22 by establishing a secure and encrypted communication channel between a client and a server. Here’s a simplified explanation of how SSH operates on port 22:

When an SSH client initiates a connection to an SSH server, it typically communicates on port 22. The client sends a connection request to the server, indicating its intent to establish an SSH session.

Once the initial connection request is made, the SSH client and server engage in a cryptographic handshake. They negotiate encryption algorithms, key exchange methods, and authentication mechanisms. This process ensures that the subsequent communication is encrypted and secure.

During the cryptographic handshake, the client and server exchange cryptographic keys. These keys are used to establish a secure and private communication channel between the client and server. The keys are generated uniquely for each SSH session, providing confidentiality and integrity for the data transmitted over the connection.

Authentication

After the key exchange, the SSH server requests user authentication from the client. The client must provide valid credentials, typically in the form of a username and password, to prove its identity. Alternatively, SSH also supports more secure authentication methods such as public key authentication or certificate-based authentication. Using wrong login credentials can lead to a permission denied error.

Once the client’s identity is verified, the SSH session is fully established, and the client and server can securely exchange data. All communication between the client and server, including commands, responses, and file transfers, is encrypted using the negotiated encryption algorithms.

During the SSH session, the client and server can interact securely. The client can send commands to the server, which executes them and returns the output. Secure file transfers can also be performed using protocols like SCP (Secure Copy) or SFTP (Secure File Transfer Protocol).

By utilizing encryption, key exchange, and authentication mechanisms, SSH on port 22 ensures secure and private communication between the client and server. This allows for remote administration, command execution, and secure file transfers over untrusted networks while protecting the confidentiality and integrity of the data exchanged.

SFTP over port 22

SFTP (Secure File Transfer Protocol) operates over port 22, leveraging the underlying Secure Shell (SSH) protocol to establish a secure and encrypted connection for secure file transfers. Here’s a breakdown of how SFTP works on port 22:

Similar to SSH, SFTP begins with the client establishing a connection with the server using the SSH protocol on port 22. The client sends a request to the server to initiate an SFTP session, indicating its intention to transfer files securely.

Once the connection is established, the SSH cryptographic handshake takes place. The client and server negotiate encryption algorithms and exchange cryptographic keys. This ensures that all subsequent SFTP communication is encrypted and protected against unauthorized access or tampering.

User Authentication After the cryptographic handshake, the SFTP server requests user authentication from the client. The client provides valid credentials to prove its identity, typically in the form of a username and password. Alternatively, more secure authentication methods such as public key authentication or certificate-based authentication can be used.

Secure File Transfer Operations

Once the client is authenticated, the SFTP session is fully established. The client can now perform various file transfer operations securely. This includes uploading files from the client to the server, downloading files from the server to the client, renaming or deleting files, creating directories, and modifying file permissions.

Command Execution and Data Integrity SFTP provides a command-driven interface, allowing the client to execute remote commands on the server. The commands are sent securely over the established SFTP session, and the server executes them within its environment. The output or response from the server is transmitted back to the client securely. Additionally, SFTP ensures the integrity of transferred files by verifying checksums and ensuring that the data remains intact during the transfer.

Session Closure and Connection Termination

When the file transfer or SFTP session is complete, the client can close the session gracefully. This involves sending termination signals to the server, notifying it of the intention to end the SFTP session. The server acknowledges the closure request, and the secure connection on port 22 is terminated.

By utilizing the security features of SSH on port 22, SFTP establishes a secure and encrypted channel for file transfers. The authentication and encryption mechanisms, along with the command-driven interface and data integrity checks, ensure that files are transferred securely and confidentially between the client and server.

FTP (Port 21) vs STFP (Port 22)

SFTP (Secure File Transfer Protocol) and FTP (File Transfer Protocol) are both file transfer protocols, but they differ significantly in terms of security and functionality.

As the name suggests, it’s a secure protocol that operates over SSH (Secure Shell) and provides secure file transfer capabilities over port 22. It encrypts both commands and data during transmission, ensuring confidentiality and integrity. SFTP offers strong authentication and supports key-based authentication methods. It also provides additional features like directory listing, remote file management, and resuming interrupted transfers. SFTP is widely adopted as a secure alternative to FTP, particularly in scenarios where data protection is a priority.

On the other hand, FTP is an older protocol that lacks built-in encryption, and works on port 21. It transfers data in plain text, making it susceptible to eavesdropping and tampering. FTP relies on separate channels for command and data transmission, which can introduce complications in firewall configurations. FTP does not have native support for encryption or secure authentication methods. While FTP is still used in certain environments, it is typically discouraged for transmitting sensitive or confidential information over public networks due to its security vulnerabilities.

In summary, SFTP provides secure file transfer capabilities with encryption, strong authentication, and additional features, making it a preferred choice when security is paramount. FTP, being an older and less secure protocol, is more suitable for internal networks or situations where security requirements are less stringent.

Can SSH and SFTP run on a different port, other than 22?

Yes, SSH and SFTP can be configured to run on ports other than the default port 22. The port number on which SSH or SFTP operates can be changed to enhance security or accommodate specific network configurations. Here’s how it can be done:

SSH:

  • Server Configuration: To change the SSH port, you need to modify the SSH server configuration file (typically located at /etc/ssh/sshd_config on Unix-like systems).
  • Locate the “Port” directive in the configuration file and change the value to the desired port number (e.g., Port 2222).
  • Save the configuration file and restart the SSH service for the changes to take effect.
  • From that point on, SSH clients need to connect to the SSH server using the new port number (e.g., ssh username@hostname -p 2222).

SFTP:

  • SFTP Subsystem Configuration: SFTP runs as a subsystem of the SSH server, and the port change for SFTP is associated with the SSH port change.
  • Follow the steps mentioned above to modify the SSH server configuration file and change the SSH port to the desired port number (e.g., Port 2222).
  • After making the changes and restarting the SSH service, SFTP will automatically use the modified SSH port for establishing secure file transfer connections.

It’s important to note that when changing the default port for SSH or SFTP, you need to consider a few factors:

  • Security: Changing the port number may provide some level of security through obscurity. It can make it slightly more difficult for automated bots or scripts to target the default port. However, it’s essential to implement other security measures alongside port changes for comprehensive security.
  • Firewall and Network Configurations: Ensure that the new port is allowed through firewalls or network security devices. Adjust any network configurations, such as port forwarding or NAT (Network Address Translation), to reflect the new port number.
  • Client Configuration: SSH and SFTP clients will need to be configured to connect using the new port number. The clients should be updated with the appropriate port option, such as “-p 2222” for SSH or specifying the port during SFTP connection setup.

Always keep in mind that when changing the default port for SSH or SFTP, it may impact interoperability with other systems or users who expect the services to be running on the standard ports. To ensure users are informed about any modifications made to the default port numbers, it is essential to provide clear communication and documentation.

Explaining the TCP/IP protocol

Port 22 holds the distinction of being a widely recognized port number utilized in the TCP/IP protocol suite. The TCP/IP protocol suite forms the fundamental collection of protocols facilitating communication and data exchange across computer networks and the internet. Here’s an explanation of how Port 22 fits into the TCP/IP model:

TCP/IP consists of several protocols that work together to facilitate communication between devices connected to a network. The two key protocols relevant to Port 22 are the Transmission Control Protocol (TCP) and the Internet Protocol (IP).

TCP is a reliable and connection-oriented protocol within the TCP/IP suite. It provides a mechanism for establishing and maintaining reliable, ordered, and error-checked communication between devices. TCP ensures that data sent between devices is delivered accurately and in the correct sequence. It uses port numbers to differentiate between multiple communication channels within a single device.

IP addressing and ports

IP is responsible for addressing and routing data packets across networks. It provides the logical addressing scheme used to identify devices on a network (e.g., IP addresses). IP breaks down data into smaller packets and includes the necessary information to route these packets to their intended destinations.

Port numbers are used by TCP and UDP (User Datagram Protocol) to identify specific services or applications running on devices within a network. They act as endpoints to distinguish multiple ongoing communications within a single device. Port numbers are 16-bit unsigned integers, ranging from 0 to 65535.

Port 22 is specifically associated with the Secure Shell (SSH) protocol, which provides secure remote administration and secure file transfer capabilities. When an SSH client initiates a connection with an SSH server, it communicates over port 22 to establish a secure and encrypted connection. The SSH protocol ensures the confidentiality, integrity, and authenticity of the data exchanged between the client and server.

By utilizing port 22, SSH enables secure remote access, command execution, and file transfer capabilities over the TCP/IP network. The use of port numbers allows TCP/IP to direct data packets to the appropriate applications or services running on a device, facilitating secure and reliable communication across networks.

What is a TCP/IP Port?

In the context of the TCP/IP protocol, ports are logical communication channels that allow for the identification and routing of data to specific applications on a device. They are used to differentiate the various services and applications running on a device connected to a network. Each port is associated with a 16-bit integer number, ranging from 0 to 65535.

Ports are divided into three main categories:

  1. Well-Known Ports: Ports ranging from 0 to 1023 are known as “well-known ports” or “reserved ports.” These ports are assigned to common services and protocols and are widely recognized. Examples include port 80 for HTTP, port 443 for HTTPS, port 21 for FTP, and port 25 for SMTP. These ports are standardized to facilitate communication between devices.
  2. Registered Ports: Ports ranging from 1024 to 49151 are known as “registered ports” or “user ports.” They are reserved for specific applications and services, often registered with the Internet Assigned Numbers Authority (IANA) to avoid conflicts. Many custom applications and specific services use ports within this range.
  3. Dynamic or Private Ports: Ports ranging from 49152 to 65535 are referred to as “dynamic ports” or “private ports.” They are used for temporary and ephemeral communications, where the port number is dynamically assigned by the operating system or application during a communication session. These ports are used to avoid conflicts with registered ports and allow for communication between temporary applications on devices.

When a data packet arrives at a device, the port number is used to direct it to the appropriate application or service. This allows for multiple applications or services to be running on a device and communicate via the TCP/IP protocol. Each packet contains information about the source and destination IP address as well as the source and destination port number to ensure that the data reaches the correct application.

Proper use and correct configuration of ports are crucial to ensure that applications can communicate correctly within a TCP/IP network and that data is properly directed to the appropriate services.

Share the Post:
Picture of Gustavo Gallas

Gustavo Gallas

Graduated in Computing at PUC-Rio, Brazil. Specialized in IT, networking, systems administration and human and organizational development​. Also have brewing skills.