Skip to content

Commit

Permalink
[PUBLISHER] Publish from Obsidian #43
Browse files Browse the repository at this point in the history
* PUSH NOTE : Troves.md

* PUSH NOTE : Transcendence.md

* PUSH NOTE : Showcase.md

* PUSH NOTE : Reflections.md

* PUSH NOTE : Musings.md

* PUSH NOTE : Terraform.md

* PUSH NOTE : 02 Setting up SSH Server and SSH Client.md

* PUSH NOTE : 01 Fundamentals of SSH.md

* PUSH NOTE : Secure Shell.md

* PUSH NOTE : Kubernetes.md

* PUSH NOTE : Linux.md

* PUSH NOTE : 02 Getting Started with Linux.md

* PUSH NOTE : 01 Introduction to Linux.md

* PUSH NOTE : Expeditions.md
  • Loading branch information
PatrickAmbrosso authored Mar 25, 2024
1 parent ca061d3 commit 70f62b6
Show file tree
Hide file tree
Showing 12 changed files with 934 additions and 737 deletions.
24 changes: 12 additions & 12 deletions content/Expeditions.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ publish: true
filename: Expeditions.md
path: content
---
Knowledge sharing, insights, and reflections derived from your learning experiences. This can include tutorials, guides, and reflections on the learning process.

- [Ansible](./Expeditions/Ansible/index.md)
- [Secure Shell](./Expeditions/Secure%20Shell/index.md)
- [Python](./Expeditions/Python/index.md)
- [Docker](./Expeditions/Docker/index.md)
- [Kubernetes](./Expeditions/Kubernetes/index.md)
- [Linux](./Expeditions/Linux/index.md)
- [Open Source](./Expeditions/Open%20Source/index.md)
- [Terraform](Terraform.md)


Knowledge sharing, insights, and reflections derived from your learning experiences. This can include tutorials, guides, and reflections on the learning process.

- [Ansible](./Expeditions/Ansible/index.md)
- [Secure Shell](./Expeditions/Secure%20Shell/index.md)
- [Python](./Expeditions/Python/index.md)
- [Docker](./Expeditions/Docker/index.md)
- [Kubernetes](./Expeditions/Kubernetes/index.md)
- [Linux](./Expeditions/Linux/index.md)
- [Open Source](./Expeditions/Open%20Source/index.md)
- [Terraform](./Expeditions/Terraform/index.md)


434 changes: 217 additions & 217 deletions content/Expeditions/Linux/02 Getting Started with Linux.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content/Expeditions/Linux/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ publish: true
- [Basic Linux Commands and Utilities](./02%20Getting%20Started%20with%20Linux.md#Basic%20Linux%20Commands%20and%20Utilities) - Covers essential commands and utilities for performing common tasks in the Linux terminal.
- [Managing Users and Permissions](./02%20Getting%20Started%20with%20Linux.md#Managing%20Users%20and%20Permissions) - Explains how to create and manage user accounts and set permissions for files and directories.
- [Working with Different Linux Distributions](Working%20with%20Different%20Linux%20Distributions.md)
- [Linux comes in Distributions](Linux%20comes%20in%20Distributions.md) - Discusses about Linux Distributions, they why and the purpose for such an approach.
- [Linux comes in Distributions](../../../Linux%20comes%20in%20Distributions.md) - Discusses about Linux Distributions, they why and the purpose for such an approach.
- [Overview of Popular Linux Distributions](Overview%20of%20Popular%20Linux%20Distributions.md) - Provides an overview of popular Linux distributions, including their characteristics and use cases.
- [Understanding the Major Families of Distros](Understanding%20the%20Major%20Families%20of%20Distros.md) - Discusses the differences between major families of Linux distributions, such as Debian-based and Red Hat-based distributions.
- [Choosing the Right Distribution for Your Needs](Choosing%20the%20Right%20Distribution%20for%20Your%20Needs.md) - Offers guidance on selecting the most suitable Linux distribution based on specific requirements and preferences.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,40 @@ description:
tags:
publish: true
---

This section deals with the basics of the SSH Protocol, and specifically the OpenSSH implementation. Topics such as the history of SSH & OpenSSH, the components of an SSH environment and more.

> [!info] Title
> This guide uses SSH and OpenSSH interchangeably, as OpenSSH is the most widely used implementation of the SSH protocol, with its presence in almost all Unix-based operating systems and even on Windows.
### History
In the early days of networked computing, protocols like Telnet and rlogin were commonly used for remote access to systems. However, these protocols transmitted data, including passwords, in plaintext, making them vulnerable to eavesdropping and unauthorized access.

In *1995*, *Tatu Ylönen*, a *Finnish researcher*, developed the Secure Shell (SSH) protocol as a secure *alternative to Telnet and rlogin*. His goal was to create a secure method for remote login and encrypted communication between networked devices. Ylönen initially released the SSH protocol as a proprietary software solution. However, realizing the importance of open standards and collaboration, he encouraged the development of an open-source version.

In *1999*, *OpenSSH* was born as an *open-source implementation of the SSH protocol suite*. It was derived from the original SSH implementation, which was freely available but not open source. The OpenSSH project was started by developers associated with the *OpenBSD operating system*. They aimed to create an open-source implementation of SSH that emphasized security, code auditability, and robustness. Over the years, OpenSSH has evolved to include various features beyond the core SSH functionality. This includes support for *encrypted file transfers (SFTP and SCP)*, *port forwarding*, *X11 forwarding*, and more. The project has received contributions from developers worldwide, allowing for ongoing improvements and bug fixes.

OpenSSH gained widespread adoption due to its *security*, *reliability*, and *cross-platform compatibility*. It became the default SSH implementation in many Unix-like operating systems, including Linux, FreeBSD, and macOS. It is now considered the *de facto standard for SSH*. OpenSSH has a strong focus on security and actively addresses vulnerabilities through regular updates and patches. The OpenSSH team maintains a coordinated process to promptly respond to security issues and release secure updates to the software.

### Architecture
The SSH protocol serves as the underlying communication protocol for secure remote access and other services provided by SSH. It defines the format and structure of messages exchanged between the SSH client and server during the connection process. The SSH protocol includes mechanisms for encryption, authentication, and integrity checks to ensure secure and reliable communication. The protocol supports different versions, such as SSH1 and SSH2, with SSH2 being the more secure and widely used version today.

The SSH architecture is composed of two main components
1. **SSH Server**
- The SSH server is responsible for hosting the services and resources that clients can connect to securely. It runs on the remote machine that you want to access.
- When a client initiates an SSH connection, the SSH server handles the authentication, encryption, and session management on the server-side.
- The SSH server listens for incoming SSH connections on a specific port (default is port 22) and establishes secure communication channels with the client.
- Examples of SSH server software include OpenSSH, Microsoft OpenSSH, and Bitvise SSH Server.
2. **SSH Client**
- The SSH client is the software or tool used to initiate a connection to an SSH server. It runs on the local machine from which the remote server is accessed.
- The SSH client provides the interface for users to authenticate, securely transmit commands and data, and interact with the remote server.
- When a client initiates an SSH connection, it establishes a secure communication channel with the server, authenticates the user, and manages the encrypted session.
- Examples of SSH client software include OpenSSH (ssh command-line tool), PuTTY, and Bitvise SSH Client.

### How does SSH work?
Here is a quick rundown of a typical SSH workflow.
1. **Connection Initiation** - When a client initiates an SSH connection to a server, they perform a handshake to establish a secure connection using cryptographic algorithms. The client and server exchange keys, verify each other's identity, and negotiate encryption algorithms for secure communication.
2. **Authentication** - Once the connection is established, the client can securely authenticate using either a password or an SSH key. The server verifies the client's credentials, and upon successful authentication, grants access to the remote shell or executes remote commands on the server.
3. **Encrypted Communication** - Throughout the session, all data transmitted between the client and server is encrypted, providing confidentiality and integrity. SSH also supports additional features like port forwarding, allowing secure access to services running on the server via the encrypted SSH tunnel.


This section deals with the basics of the SSH Protocol, and specifically the OpenSSH implementation. Topics such as the history of SSH & OpenSSH, the components of an SSH environment and more.

> [!info] Title
> This guide uses SSH and OpenSSH interchangeably, as OpenSSH is the most widely used implementation of the SSH protocol, with its presence in almost all Unix-based operating systems and even on Windows.
### History
In the early days of networked computing, protocols like Telnet and rlogin were commonly used for remote access to systems. However, these protocols transmitted data, including passwords, in plaintext, making them vulnerable to eavesdropping and unauthorized access.

In *1995*, *Tatu Ylönen*, a *Finnish researcher*, developed the Secure Shell (SSH) protocol as a secure *alternative to Telnet and rlogin*. His goal was to create a secure method for remote login and encrypted communication between networked devices. Ylönen initially released the SSH protocol as a proprietary software solution. However, realizing the importance of open standards and collaboration, he encouraged the development of an open-source version.

In *1999*, *OpenSSH* was born as an *open-source implementation of the SSH protocol suite*. It was derived from the original SSH implementation, which was freely available but not open source. The OpenSSH project was started by developers associated with the *OpenBSD operating system*. They aimed to create an open-source implementation of SSH that emphasized security, code auditability, and robustness. Over the years, OpenSSH has evolved to include various features beyond the core SSH functionality. This includes support for *encrypted file transfers (SFTP and SCP)*, *port forwarding*, *X11 forwarding*, and more. The project has received contributions from developers worldwide, allowing for ongoing improvements and bug fixes.

OpenSSH gained widespread adoption due to its *security*, *reliability*, and *cross-platform compatibility*. It became the default SSH implementation in many Unix-like operating systems, including Linux, FreeBSD, and macOS. It is now considered the *de facto standard for SSH*. OpenSSH has a strong focus on security and actively addresses vulnerabilities through regular updates and patches. The OpenSSH team maintains a coordinated process to promptly respond to security issues and release secure updates to the software.

### Architecture
The SSH protocol serves as the underlying communication protocol for secure remote access and other services provided by SSH. It defines the format and structure of messages exchanged between the SSH client and server during the connection process. The SSH protocol includes mechanisms for encryption, authentication, and integrity checks to ensure secure and reliable communication. The protocol supports different versions, such as SSH1 and SSH2, with SSH2 being the more secure and widely used version today.

The SSH architecture is composed of two main components
1. **SSH Server**
- The SSH server is responsible for hosting the services and resources that clients can connect to securely. It runs on the remote machine that you want to access.
- When a client initiates an SSH connection, the SSH server handles the authentication, encryption, and session management on the server-side.
- The SSH server listens for incoming SSH connections on a specific port (default is port 22) and establishes secure communication channels with the client.
- Examples of SSH server software include OpenSSH, Microsoft OpenSSH, and Bitvise SSH Server.
2. **SSH Client**
- The SSH client is the software or tool used to initiate a connection to an SSH server. It runs on the local machine from which the remote server is accessed.
- The SSH client provides the interface for users to authenticate, securely transmit commands and data, and interact with the remote server.
- When a client initiates an SSH connection, it establishes a secure communication channel with the server, authenticates the user, and manages the encrypted session.
- Examples of SSH client software include OpenSSH (ssh command-line tool), PuTTY, and Bitvise SSH Client.

### How does SSH work?
Here is a quick rundown of a typical SSH workflow.
1. **Connection Initiation** - When a client initiates an SSH connection to a server, they perform a handshake to establish a secure connection using cryptographic algorithms. The client and server exchange keys, verify each other's identity, and negotiate encryption algorithms for secure communication.
2. **Authentication** - Once the connection is established, the client can securely authenticate using either a password or an SSH key. The server verifies the client's credentials, and upon successful authentication, grants access to the remote shell or executes remote commands on the server.
3. **Encrypted Communication** - Throughout the session, all data transmitted between the client and server is encrypted, providing confidentiality and integrity. SSH also supports additional features like port forwarding, allowing secure access to services running on the server via the encrypted SSH tunnel.

SSH was developed as a secure alternative to earlier remote login protocols like Telnet, which transmitted data in plain text, making it vulnerable to interception and unauthorized access. With SSH, *all communication is encrypted*, preventing eavesdropping and protecting sensitive information such as usernames, passwords, and commands.
Loading

0 comments on commit 70f62b6

Please sign in to comment.