密鑰登錄
密鑰登錄比帳號密碼方式更安全、更方便,并提供了更多的自動化和批處理選項。
- 安全性:使用非對稱加密算法,公鑰存在服務器,私鑰存在本地計算機,私鑰不在網絡傳輸,降低被黑客截獲風險。
- 強密碼:避免使用弱密碼或多個服務器用相同密碼的風險。密鑰長度通常比密碼更長,因此更難以被破解。
- 方便性:設置了密鑰登錄,無需每次都輸入密碼,在頻繁登錄多個服務器時特別方便。
- 自動化:密鑰登錄適用于自動化腳本和批處理作業,執行遠程命令或復制文件,無需人工干預。
加密方法
在Linux中,默認的密鑰鎖碼方法是RSA,它使用RSA算法生成公鑰和私鑰,并使用私鑰進行加密和解密。
- 對稱加密?相同密鑰加密和解密。如DES、3DES、AES等,特點是加密和解密速度快。
- 非對稱加密?不同密鑰加密和解密。如RSA、DSA、ECC等,特點是安全性高,但速度相對較慢。
密鑰工具 ssh-keygen
# 生成2048位RSA密鑰(默認)
ssh-keygen# 生成4096位RSA密鑰
ssh-keygen -t rsa -b 4096# 生成512位ECDSA密鑰
ssh-keygen -t ecdsa -b 512
示例:主機A登錄B
LinuxA: 192.168.0.31
LinuxB: 192.168.0.32
# 在LinuxA下生成密鑰對,密鑰文件在~/.ssh目錄
ssh-keygen# 復制公鑰到B主機,輸入B主機密碼,格式:ssh-copy-id user@ip -p port
ssh-copy-id 192.168.0.32 # 默認22端口# 免密登入B主機
ssh 192.168.0.32# 免密復制文件(A到B,也可B到A)
scp -P 22 /homea/abc.zip root@192.168.0.32:/homeb/
免密設置成功,無需輸入密碼,寫自動化腳本完成應用部署等。
附:ssh-keygen 命令選項
命令參數:
-b:指定密鑰長度
-e:讀取openssh的私鑰或者公鑰文件
-C:添加注釋
-f:保存密鑰的文件名(默認存到~/.ssh/下,生成id_rsa和id_rsa.pub兩個文件)
-i:讀取未加密的ssh-v2兼容的私鑰/公鑰文件
-l:顯示公鑰文件的指紋數據
-N:提供新密碼,空表示不需要密碼
-P:提供舊密碼,空表示不需要密碼
-q:靜默模式
-t:指定要創建的密鑰類型
-y: 讀取私鑰輸出公鑰
附:scp 命令選項
scp(secure copy), 是linux系統下基于ssh的遠程加密文件拷貝命令。
命令格式:
scp [參數] [原路徑] [目標路徑]
命令參數:
-1:使用協議ssh1
-2:使用協議ssh2
-4:使用IPv4尋址
-6:使用IPv6尋址
-B:使用批處理模式
-C:允許壓縮
-p:保留原文件的修改時間,訪問時間和訪問權限
-q:不顯示傳輸進度條
-r:遞歸復制整個目錄
-v:輸出詳細信息。
-c cipher:以cipher將數據傳輸進行加密
-F ssh_config:替代的ssh配置文件
-i identity_file:從指定文件中讀取傳輸時使用的密鑰文件
-l limit:限定用戶所能使用的帶寬,以Kbit/s為單位
-P port:指定端口號
Linux免密登錄——A登錄B密鑰設置(SSH SCP)SSH密鑰登錄比帳號密碼方式更安全、更方便,并提供了更多的自動化和批處理選項。https://blog.oxings.com/article/100