đ SSH Key: āϏāĻšāĻ āĻāĻžāώāĻžā§ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻžāĻāĻĄ (Beginner āĻĨā§āĻā§ Pro)
SSH Key â āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāĻŽāĻĒā§āϝāĻžāĻā§āĻ āύā§āĻāϏ (Forhadâs Notes)

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 keyid_ed25519.pubâ Public keyconfigâ SSH configurationknown_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
.sshpermission = 700
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ DevOps, Cloud, Server Management āĻŦāĻž GitHub āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϤāĻžāĻšāϞ⧠SSH Key āĻļā§āĻāĻž āĻ āϤā§āϝāύā§āϤ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖāĨ¤
āĻāĻāĻž āĻāĻāĻŦāĻžāϰ āĻ āĻŋāĻāĻāĻžāĻŦā§ āϏā§āĻāĻāĻĒ āĻāϰāϞ⧠āϏāĻžāϰā§āĻāĻžāϰ āĻŽā§āϝāĻžāύā§āĻ āĻāϰāĻž āĻ āύā§āĻ āϏāĻšāĻ āĻšā§ā§ āϝāĻžā§āĨ¤


