Skip to main content

Command Palette

Search for a command to run...

🔑 SSH Key: āϏāĻšāϜ āĻ­āĻžāώāĻžā§Ÿ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ—āĻžāχāĻĄ (Beginner āĻĨ⧇āϕ⧇ Pro)

SSH Key — āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻŽāĻĒā§āϝāĻžāĻ•ā§āϟ āύ⧋āϟāϏ (Forhad’s Notes)

Updated
â€ĸ5 min readâ€ĸView as Markdown
🔑 SSH Key: āϏāĻšāϜ āĻ­āĻžāώāĻžā§Ÿ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ—āĻžāχāĻĄ (Beginner āĻĨ⧇āϕ⧇ Pro)
F

Hi, I'm Farhad Hossain, a passionate web developer on a journey to build impactful software and solve real-world problems. I share coding tips, tutorials, and my growth experiences to inspire others.

āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ, DevOps āĻŦāĻž GitHub āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϞ⧇ āĻāĻ•āϟāĻŋ āĻļāĻŦā§āĻĻ āĻĒā§āϰāĻžā§Ÿāχ āĻļ⧁āύāϤ⧇ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§Ÿâ€”SSH KeyāĨ¤
āĻ…āύ⧇āϕ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ āĻāϟāĻž āĻāĻ•āϟ⧁ āϜāϟāĻŋāϞ āĻŽāύ⧇ āĻ•āϰ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāϏāϞ⧇ āϧāĻžāϰāĻŖāĻžāϟāĻž āϖ⧁āĻŦāχ āϏāĻšāϜāĨ¤

āĻāχ āϞ⧇āĻ–āĻžā§Ÿ āφāĻŽāϰāĻž āϖ⧁āĻŦ āϏāĻšāϜāĻ­āĻžāĻŦ⧇ āĻŦ⧁āĻāĻŦ:

  • SSH Key āϕ⧀

  • āϕ⧇āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ

  • āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇

  • āϕ⧋āĻĨāĻžā§Ÿ āĻĨāĻžāϕ⧇

  • Permission āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇

  • āύāϤ⧁āύ SSH Key āϕ⧀āĻ­āĻžāĻŦ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšā§Ÿ


🧭 SSH Key āϕ⧀?

SSH Key āĻšāϞ⧋ āĻāĻ•āϟāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻ āϞāĻ—āχāύ āĻĒāĻĻā§āϧāϤāĻŋāĨ¤

āĻāϟāĻž āĻŽā§‚āϞāϤ āĻāĻ•āϟāĻŋ key pair āĻĻāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰ⧇:

  • Private Key

  • Public Key

āĻāϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻĒāύāĻŋ āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āĻ›āĻžā§œāĻžāχ āύāĻŋāϰāĻžāĻĒāĻĻāĻ­āĻžāĻŦ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϞāĻ—āχāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āϏāĻšāϜāĻ­āĻžāĻŦ⧇ āĻ­āĻžāĻŦ⧁āύ:

  • Private key = āφāĻĒāύāĻžāϰ āĻ—ā§‹āĻĒāύ āϚāĻžāĻŦāĻŋ

  • Public key = āĻĻāϰāϜāĻžāϰ āϤāĻžāϞāĻž

āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āϏāĻ āĻŋāĻ• āϚāĻžāĻŦāĻŋ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻĻāϰāϜāĻž āϖ⧁āϞāĻŦ⧇āĨ¤


đŸ›Ąī¸ āϕ⧇āύ SSH Key āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ?

SSH key āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄā§‡āϰ āĻšā§‡ā§Ÿā§‡ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āύāĻŋāϰāĻžāĻĒāĻĻāĨ¤

āĻ•āĻžāϰāĻŖāϗ⧁āϞ⧋ āĻĻ⧇āϖ⧁āύ:

  • 🔐 brute-force āĻ•āϰāĻž āĻĒā§āϰāĻžā§Ÿ āĻ…āϏāĻŽā§āĻ­āĻŦ

  • đŸšĢ āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšā§Ÿ āύāĻž

  • âš™ī¸ automation script āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§Ÿ

  • 🧠 DevOps āĻ“ CI/CD āϤ⧇ āϖ⧁āĻŦ āĻĻāϰāĻ•āĻžāϰ

  • 🌐 GitHub, GitLab āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻšā§Ÿ

  • đŸ–Ĩī¸ āĻāĻ•āĻžāϧāĻŋāĻ• āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻšāĻœā§‡ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰāĻž āϝāĻžā§Ÿ


âš™ī¸ SSH Key āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇?

SSH key system āϖ⧁āĻŦ āϏāĻšāϜ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋ⧟āĻžā§Ÿ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

āϧāĻžāĻĒāϗ⧁āϞ⧋

1ī¸âƒŖ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ SSH key pair āϤ⧈āϰāĻŋ āĻ•āϰ⧇āύ

āĻāϤ⧇ āϤ⧈āϰāĻŋ āĻšā§Ÿ:

  • Private key

  • Public key

2ī¸âƒŖ Public key āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āĻšā§Ÿ

āĻĢāĻžāχāϞāϟāĻŋ āĻĨāĻžāϕ⧇:

~/.ssh/authorized_keys

3ī¸âƒŖ āϝāĻ–āύ āφāĻĒāύāĻŋ SSH āĻĻāĻŋā§Ÿā§‡ āϞāĻ—āχāύ āĻ•āϰ⧇āύ

āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻšā§‡āĻ• āĻ•āϰ⧇:

  • āφāĻĒāύāĻžāϰ public key āφāϛ⧇ āĻ•āĻŋāύāĻž

4ī¸âƒŖ āφāĻĒāύāĻžāϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ private key āĻĻāĻŋā§Ÿā§‡ āĻĒā§āϰāĻŽāĻžāĻŖ āĻ•āϰ⧇

āϝ⧇ āφāĻĒāύāĻŋ āφāϏāϞ userāĨ¤

5ī¸âƒŖ āϏāĻŦ āĻ āĻŋāĻ• āĻĨāĻžāĻ•āϞ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻĒāύāĻžāϕ⧇ āĻĸ⧁āĻ•āϤ⧇ āĻĻā§‡ā§ŸāĨ¤


📁 SSH Key āϕ⧋āĻĨāĻžā§Ÿ āĻĨāĻžāϕ⧇?

Linux āĻŦāĻž Mac āĻ āϏāĻŦ SSH āĻĢāĻžāχāϞ āĻĨāĻžāϕ⧇ āĻāχ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇:

~/.ssh/

āĻāχ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻ•ā§Ÿā§‡āĻ•āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĢāĻžāχāϞ āĻĨāĻžāϕ⧇āĨ¤

āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĢāĻžāχāϞāϗ⧁āϞ⧋

1ī¸âƒŖ Private Key

id_ed25519

āĻāϟāĻž āϖ⧁āĻŦāχ sensitiveāĨ¤

āĻ•āĻžāωāϕ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āϝāĻžāĻŦ⧇ āύāĻžāĨ¤


2ī¸âƒŖ Public Key

id_ed25519.pub

āĻāϟāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āĻšā§ŸāĨ¤

āĻļā§‡ā§ŸāĻžāϰ āĻ•āϰāĻž āύāĻŋāϰāĻžāĻĒāĻĻāĨ¤


3ī¸âƒŖ config

config

āĻāĻ–āĻžāύ⧇ SSH shortcut āϞ⧇āĻ–āĻž āĻĨāĻžāϕ⧇āĨ¤


4ī¸âƒŖ known_hosts

known_hosts

āĻāĻ–āĻžāύ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ fingerprint āĻĨāĻžāϕ⧇āĨ¤


🔍 ls -al ~/.ssh āĻĻāĻŋāϞ⧇ āϕ⧀ āĻĻ⧇āĻ–āĻž āϝāĻžā§Ÿ?

āωāĻĻāĻžāĻšāϰāĻŖ:

drwx------  2 forhad forhad 4096 Nov  8 02:57 .
drwxr-x--- 43 forhad forhad 4096 Mar 12 15:41 ..
-rw-------  1 forhad forhad  419 Oct 28 06:14 id_ed25519
-rw-r--r--  1 forhad forhad  106 Oct 28 06:14 id_ed25519.pub
-rw-------  1 forhad forhad   58 Nov  8 02:57 config
-rw-------  1 forhad forhad  978 Oct 28 07:41 known_hosts

āĻāĻ–āĻžāύ āĻĨ⧇āϕ⧇ āĻŦā§‹āĻāĻž āϝāĻžā§Ÿ:

  • id_ed25519 → Private key

  • id_ed25519.pub → Public key

  • config → SSH configuration

  • known_hosts → Server fingerprint


👀 SSH āĻĢāĻžāχāϞāϗ⧁āϞ⧋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ–āĻŦ⧇?

Private key

cat ~/.ssh/id_ed25519

Public key

cat ~/.ssh/id_ed25519.pub

SSH config

cat ~/.ssh/config

known_hosts

cat ~/.ssh/known_hosts

âœī¸ SSH config āĻāĻĄāĻŋāϟ āĻ•āϰāĻž

SSH config edit āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻāĻ­āĻžāĻŦ⧇:

nano ~/.ssh/config

āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ public key āϝ⧋āĻ— āĻ•āϰāϤ⧇:

nano ~/.ssh/authorized_keys

🔐 Linux Permission āϕ⧀?

Linux-āĻ āϤāĻŋāύ āϧāϰāύ⧇āϰ user āĻĨāĻžāϕ⧇:

  • Owner

  • Group

  • Others

āĻāĻŦāĻ‚ āϤāĻŋāύ āϧāϰāύ⧇āϰ access āĻĨāĻžāϕ⧇:

  • r → read

  • w → write

  • x → execute

āωāĻĻāĻžāĻšāϰāĻŖ:

-rw-------

āĻŽāĻžāύ⧇:

  • owner → read + write

  • group → access āύ⧇āχ

  • others → access āύ⧇āχ


📁 .ssh āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇āϰ āϏāĻ āĻŋāĻ• permission

drwx------

āĻ•āĻžāϰāĻŖ āĻāĻ–āĻžāύ⧇ sensitive āĻĢāĻžāχāϞ āĻĨāĻžāϕ⧇āĨ¤


🔑 Private key permission

-rw-------

āĻ…āĻ°ā§āĻĨāĻžā§Ž:

āĻļ⧁āϧ⧁ owner access āĻĒāĻžāĻŦ⧇āĨ¤

āĻ•āĻžāϰāĻŖ private key leak āĻšāϞ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻšā§āϝāĻžāĻ• āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤


🔓 Public key permission

-rw-r--r--

āĻ•āĻžāϰāĻŖ public key āĻļā§‡ā§ŸāĻžāϰ āĻ•āϰāĻž āύāĻŋāϰāĻžāĻĒāĻĻāĨ¤


âš™ī¸ SSH config permission

-rw-------

āĻ•āĻžāϰāĻŖ āĻāϤ⧇ sensitive server info āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤


🧾 known_hosts permission

-rw-------

āĻ•āĻžāϰāĻŖ āĻāϤ⧇ server fingerprint āĻĨāĻžāϕ⧇āĨ¤


đŸ› ī¸ Permission āĻ āĻŋāĻ• āĻ•āϰāĻžāϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ

.ssh folder

chmod 700 ~/.ssh

private key

chmod 600 ~/.ssh/id_ed25519

public key

chmod 644 ~/.ssh/id_ed25519.pub

config

chmod 600 ~/.ssh/config

known_hosts

chmod 600 ~/.ssh/known_hosts

🔍 chmod 600 āĻāϰ āĻŽāĻžāύ⧇ āϕ⧀?

chmod 600 file

āĻŽāĻžāύ⧇ permission āĻšāĻŦ⧇:

rw-------

āĻ…āĻ°ā§āĻĨāĻžā§Ž:

  • owner → read + write

  • group → no access

  • others → no access

Sensitive āĻĢāĻžāχāϞ⧇āϰ āϜāĻ¨ā§āϝ āĻāϟāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāĨ¤


🚀 āύāϤ⧁āύ SSH Key āϤ⧈āϰāĻŋ

āύāϤ⧁āύ SSH key āĻŦāĻžāύāĻžāϤ⧇:

ssh-keygen -t ed25519 -C "your_name"

āϤāĻžāϰāĻĒāϰ key āϤ⧈āϰāĻŋ āĻšāĻŦ⧇:

~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub

📤 Public Key āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϝ⧋āĻ— āĻ•āϰāĻž

āĻĒā§āϰāĻĨāĻŽā§‡ public key āĻĻ⧇āϖ⧁āύ:

cat ~/.ssh/id_ed25519.pub

āϤāĻžāϰāĻĒāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĸ⧁āϕ⧁āύ:

ssh root@SERVER_IP

āϤāĻžāϰāĻĒāϰ:

nano ~/.ssh/authorized_keys

āĻāĻ–āĻžāύ⧇ public key paste āĻ•āϰ⧁āύāĨ¤


🚀 SSH connection test

āϏāĻŦ āĻ āĻŋāĻ• āĻĨāĻžāĻ•āϞ⧇:

ssh root@SERVER_IP

āĻĒāĻžāϏāĻ“ā§ŸāĻžāĻ°ā§āĻĄ āĻ›āĻžā§œāĻž āϞāĻ—āχāύ āĻšāĻŦ⧇āĨ¤


🧠 āϏāĻšāϜ āϏāĻžāϰāĻžāĻ‚āĻļ

  • SSH key = private key + public key

  • Private key āφāĻĒāύāĻžāϰ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ⧇ āĻĨāĻžāϕ⧇

  • Public key āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĨāĻžāϕ⧇

  • .ssh āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āϏāĻŦ key āĻĨāĻžāϕ⧇

  • Private key permission = 600

  • Public key permission = 644

  • .ssh permission = 700


āϝāĻĻāĻŋ āφāĻĒāύāĻŋ DevOps, Cloud, Server Management āĻŦāĻž GitHub āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āύ, āϤāĻžāĻšāϞ⧇ SSH Key āĻļ⧇āĻ–āĻž āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

āĻāϟāĻž āĻāĻ•āĻŦāĻžāϰ āĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϏ⧇āϟāφāĻĒ āĻ•āϰāϞ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻŽā§āϝāĻžāύ⧇āϜ āĻ•āϰāĻž āĻ…āύ⧇āĻ• āϏāĻšāϜ āĻšā§Ÿā§‡ āϝāĻžā§ŸāĨ¤