1.首先什么是SSH
Secure Shell (SSH) 是一個允許兩台電腦之間通過安全的連接進行數據交換的網絡協議。通過加密保證了數據的保密性和完整性。SSH采用公鑰加密技術來驗證遠程主機,以及(必要時)允許遠程主機驗證用戶。
2.SSH的好處
1》傳統的FTP、Telnet是再網絡中明文傳送數據、用戶帳號和密碼,很容易受到中間人攻擊。而通過使用SSH,你可以把所有傳輸的數據進行加密,這樣“中間人”這種攻擊方式就不可能實現了, 而且也能夠防止DNS和IP欺騙。
2》第二個好處是:傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。
3.怎么實現SSH的好處呢?【怎么才能做到加密】
SSH利用SSH Key來進行前面提到的基於密鑰的安全驗證。
4.SSH-Key是什么?
1》SSH-Key 就是一對密鑰對。【一個是公鑰,一個是私鑰】
2》公鑰是給別人用的。私鑰是給自己用的。
3》別人是誰?可以是GitLab服務器。
自己是誰?可以是本地。
4》舉個例子
4.1》本地想要使用git從gitHub/gitlab上拉取代碼。
4.2》給GitHub/GitLab配置公鑰,公鑰就可以作為一個加密的箱子,將代碼放在箱子里。
4.3》被本地拉取到后,使用私鑰將加密的箱子打開。就能拿到代碼了。
4.4》整個過程中,都沒有用戶名/密碼在網絡中傳輸,所以不會給他人攔截到,破解你的數據
5》所以,SSH-Key的直觀作用,就是【讓你方便的登錄到 SSH 服務器,而無需輸入密碼】
5.SSH-Key的密鑰類型
有RSA和DSA兩種認證密鑰
6.在linux上生成SSH-Key的命令步驟
1》首先,你得在root目錄下
cd /root
2》查看是否已經存在SSH-Key【其實就是查看.ssh這個隱藏目錄是否存在】
ls -al ~/.ssh
如果沒有就新建,如果有,建議刪除再新建
刪除命令【其實就是刪除.ssh這個隱藏目錄目錄】
rm -rf .ssh
3》新生成SSH-key【替換成你自己的郵箱】
ssh-keygen -t rsa -C "sxd4business@qq.com"
鍵入命令后,會讓你輸入密碼用來保護你的密鑰等,總共三次需要輸入的,你都直接三次回車就好!!
【關鍵是,設置了你自己以后忘了就得重新生成】
【-C 是給你的密鑰設置注釋,你不想設置為郵箱,設置成別的也行】
4》生成后,會在/root目錄下,也就是當前用戶的目錄下,生成一個.ssh隱藏目錄,目錄中會有【id_rsa】和【id_rsa.pub】兩個文件,一個是私鑰,一個是公鑰。你現在就可以復制使用了

-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA36h8i3yc5glv7kURRNkkdrYYOkeDcUHF4PSi64ZL2DMGmu2/
mzHF3CDfISAZUFp3cTd0yqRIF7LAfmlQrbDmFDk+jwMELoeVurUa8yaCVyz0pqfR
44ZYeEBToz53GEJ9k8n2nfOPBSqxhjblRxJgCKv7PIPqEI53h7laBKagyZ6bN2qm
yMcEjQmQzId4Ub7pweEhLH6FyKCx/upF7DxfJe2EyzAZJfLzfkb7lz1roLlDRngc
Gmb+aPmam3lIQHDrFLzbwCCox638Xg1/6gpw4yIFYsZqSOUgfjbKO1j03JLEMtzA
PPrH+eFq83IO0wkgVd+1FxIGLj5KVG/ygftqcQIDAQABAoIBAAPqE/vw+2H/Skk2
Rj4ZOs0lFLl4ZPGHgCoWvf83Q36OLhBqFs9liJv4q08OG8NPQgXmPZIKXASmKT5N
I49WqEA0XEbue5VA5Dr3Tnhw9RkHfWSpTUAZKtU38v7JahYvm7kJcNqE17z0aVT7
AvpCdRHRyLzfZipSA/+JG+026Vt99b70wD4B8SO0wpXj0Jr3VmP0tAAbdtecZ3mv
EQIVr4W+7D6O+o625ZiG+rU1nhuqQCN17YCvbOc48LkxLJADzqccUiUmm7nNSo6a
YAWPClFEexLGdNkU6Xb90/ujxdGDYWwvVC0bS8tTstPbIYQZm4J2KsfceiPYThw2
wd59740CgYEA/vhI7+2hXUHbHFbPuSvNIBVHpMKH7/U7Quj7aZkKR2Sx6bkOKdzR
NPb7wVLZkZ3CxsuQLror/Ws4ZKLgdfmvbdrfA4gxZ7Te35egQnyYVIs1KyqzH27F
bkQ9fbmty8kZ5G3Rmgmi/4wkBybtgvpmH+5rQx8Oz5/uYmNV5Qh2PG8CgYEA4I/Q
3/ohKCdFJ8KhGAbvB6fkQ8QHVfn0CJ8TFhkC3S64XyXyXoDUASr81coCPw3RtB59
eS4HUL++GSZfvUEX8DANU8LQezwYdkxbPsgMI9z99kiySdbUW9+EIRpivozX97+E
7k4+XH0HrY0kC3W8TyzT6rVxsT0xyQaOw1HV9x8CgYEAgkW/ln82vFxipHciiTz9
AJB+24rdQ9hroANEOa8NFm83i/CWcQM3DTXIaf131rPhigsGLynGQiQfWyPxRbX+
UUXMPpS+kXtTiLCDHJVmi4PY9aZKgRvq2i0ZsfxF9WJZzWHi/y4/Twx+d/0Gy64+
sb/ypAfhXGodtb2FbJFHQBcCgYEAhEFvXVptiL6IJkCkrAf5Y2LoN1kOkP5jUWiO
zybv3uCTScaJlkr9kaqFukv9QrGa3iBO+b24JUCobxuAq2/Y72b9kmVccBgWuCWE
X9dl/wE6uYBbMM3LyEg+A1kM6vj8gTdUzR1b8RDaIsbLgcxXmbHnJYazbRWDasfn
8PUTtTUCgYEAvaGGJN3rakj8jkDDf1egeuRStJ+jfRVMm9NAqa+ELjDKW3fORCYE
wIlGveGn5S3trx28RBQY1DZxFsF0YlD2hkxH70AFEOYrE/mTqqPeZZdfLsb9yF8E
kKJBRhG94YGRSBHu2h6SnnfHoJV3yyk0LrPqyyC97A7lSqLN8fRaGm8=
-----END RSA PRIVATE KEY-----

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfqHyLfJzmCW/uRRFE2SR2thg6R4NxQcXg9KLrhkvYMwaa7b+bMcXcIN8hIBlQWndxN3TKpEgXssB+aVCtsOYUOT6PAwQuh5W6tRrzJoJXLPSmp9Hjhlh4QFOjPncYQn2Tyfad848FKrGGNuVHEmAIq/s8g+oQjneHuVoEpqDJnps3aqbIxwSNCZDMh3hRvunB4SEsfoXIoLH+6kXsPF8l7YTLMBkl8vN+RvuXPWuguUNGeBwaZv5o+ZqbeUhAcOsUvNvAIKjHrfxeDX/qCnDjIgVixmpI5SB+Nso7WPTcksQy3MA8+sf54Wrzcg7TCSBV37UXEgYuPkpUb/KB+2px sxd4business@qq.com
7.附錄ssh-keygen命令參數解釋
-b:指定密鑰長度;
-e:讀取openssh的私鑰或者公鑰文件;
-C:添加注釋;
-f:指定用來保存密鑰的文件名;
-i:讀取未加密的ssh-v2兼容的私鑰/公鑰文件,然后在標准輸出設備上顯示openssh兼容的私鑰/公鑰;
-l:顯示公鑰文件的指紋數據;
-N:提供一個新密語;
-P:提供(舊)密語;
-q:靜默模式;
-t:指定要創建的密鑰類型。
================================================================
參考地址:https://www.jianshu.com/p/1246cfdbe460
參考地址:https://www.cnblogs.com/whlives/p/6908125.html