disk info doc
This commit is contained in:
114
Linux/Basic Administration/08-setup-ssh.md
Normal file
114
Linux/Basic Administration/08-setup-ssh.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# 🔐 Secure Shell (SSH) – Remote Access & Management
|
||||
|
||||
**SSH (Secure Shell)** is a cryptographic network protocol that allows users to **securely access and control remote machines** over a network. It's a foundational tool for system administrators, developers, and anyone managing remote systems.
|
||||
|
||||
---
|
||||
|
||||
## 🧠 What SSH Does
|
||||
|
||||
* **🔒 Encrypts Communication**
|
||||
All data transmitted between the client and the remote server is encrypted, protecting it from eavesdropping and man-in-the-middle attacks.
|
||||
|
||||
* **🧑💻 Authenticates Users**
|
||||
Supports both password-based and public key-based authentication to ensure that only authorized users gain access.
|
||||
|
||||
* **💻 Enables Remote Command Execution**
|
||||
Run commands on a remote machine as if you're using its terminal directly.
|
||||
|
||||
* **📁 Supports Secure File Transfers**
|
||||
Tools like `scp` (Secure Copy) and `sftp` (SSH File Transfer Protocol) allow encrypted file transfers between machines.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Installing the SSH Server
|
||||
|
||||
To accept SSH connections on a machine, you must install and start the **OpenSSH server**.
|
||||
|
||||
### On Debian/Ubuntu systems
|
||||
|
||||
```bash
|
||||
sudo apt install openssh-server
|
||||
```
|
||||
|
||||
* This installs the OpenSSH daemon (`sshd`), which listens for incoming SSH connections.
|
||||
* To enable and start the service:
|
||||
|
||||
```bash
|
||||
sudo systemctl enable ssh
|
||||
sudo systemctl start ssh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### On RHEL/CentOS systems
|
||||
|
||||
```bash
|
||||
sudo yum install openssh-server
|
||||
```
|
||||
|
||||
* Start and enable the SSH service:
|
||||
|
||||
```bash
|
||||
sudo systemctl enable sshd
|
||||
sudo systemctl start sshd
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Common SSH Usage Examples
|
||||
|
||||
### 🔗 Connect to a Remote Server
|
||||
|
||||
```bash
|
||||
ssh username@remote_host
|
||||
```
|
||||
|
||||
### 📁 Copy a File to a Remote Server Using `scp`
|
||||
|
||||
```bash
|
||||
scp file.txt user@remote_host:/path/to/destination/
|
||||
```
|
||||
|
||||
### 📥 Copy a File from a Remote Server
|
||||
|
||||
```bash
|
||||
scp user@remote_host:/path/to/file.txt .
|
||||
```
|
||||
|
||||
### 🗂️ Use Interactive File Transfer with `sftp`
|
||||
|
||||
```bash
|
||||
sftp user@remote_host
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Key-Based Authentication (Optional but Recommended)
|
||||
|
||||
To use SSH without typing a password every time, you can set up key-based authentication:
|
||||
|
||||
1. **Generate SSH key pair on your local machine:**
|
||||
|
||||
```bash
|
||||
ssh-keygen
|
||||
```
|
||||
|
||||
2. **Copy the public key to the remote server:**
|
||||
|
||||
```bash
|
||||
ssh-copy-id user@remote_host
|
||||
```
|
||||
|
||||
3. Now you can SSH without a password prompt:
|
||||
|
||||
```bash
|
||||
ssh user@remote_host
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Final Notes
|
||||
|
||||
* SSH is a vital tool for managing servers securely.
|
||||
* Always **disable root login** and **use key authentication** for better security.
|
||||
* You can configure SSH behavior in `/etc/ssh/sshd_config`.
|
||||
Reference in New Issue
Block a user