使用ssh公共金鑰身份驗證連線到遠端系統是一種健壯,安全的替代使用帳戶密碼或密碼登入方法。ssh公鑰認證依賴於生成一對單獨的金鑰(即金鑰對),乙個「私有」和另乙個「公共」的非對稱密碼演算法。將私鑰保密並將其儲存在用來連線遠端系統的計算機上。公鑰儲存在需要遠端登陸的伺服器上,~/.ssh/authorized_keys檔案裡。
公鑰和私鑰的生成
語法
ssh-keygen (選項)
選項-b:指定金鑰長度;
-e:讀取openssh的私鑰或者公鑰檔案;
-c:新增注釋;
-f:指定用來儲存金鑰的檔名;
-i:讀取未加密的ssh-v2相容的私鑰/公鑰檔案,然後在標準輸出裝置上顯示openssh相容的私鑰/公鑰;
-l:顯示公鑰檔案的指紋資料;
-n:提供乙個新密語;
-p:提供(舊)密語;
-q:靜默模式;
-t:指定要建立的金鑰型別。
ssh-keygen -t rsa -p 123456 -f host -c 'my host key'
意思就是新建了密碼為123456,注釋為my host key,檔名為host,的金鑰。此命令會生成host和host.pub兩個檔案,前者為私鑰檔案,後者為公鑰檔案。如果想免密登入的話,請將密語設定為空。
公鑰內容複製到 ~/.ssh/authorized_keys檔案
儲存後,對.ssh目錄和其中的authorized_keys公鑰檔案設定相應的許可權:
chmod -r 0700 ~/.ssh
chmod -r 0644 ~/.ssh/authorized_keys
ssh的公鑰認證配置檔案修改:
修改vi /etc/ssh/sshd_config 檔案
rsaauthentication yes
# 啟用 rsa 認證
pubkeyauthentication yes
# 啟用公鑰認證
strictmodes no
#修改為no,如果不修改用key登陸是出現server refused our key(如果strictmodes為yes必需保證存放公鑰的資料夾的擁有與登陸使用者名稱是相同的
ps:金鑰登入後可以選擇設定 passwordauthentication no禁止密碼認證(改為no,預設為yes是用密碼認證)
「strictmodes」設定ssh在接收登入請求之前是否檢查使用者家目錄和rhosts檔案的許可權和所有權。這通常是必要的,因為經常會把自己的目錄和檔案設成任何人都有寫許可權。
最後重啟sshd服務
systemctl restart sshd.service
可以以使用xftp xshell等工具,直接匯入剛才儲存的私鑰登入。
但是使用putty登入時候還要特別設定,putty不能使用openssh生成的金鑰
把秘鑰儲存在指定資料夾或者.ssh/目錄下,然後開啟終端直接使用ssh命令登入
[格式] ssh -i 秘鑰路徑 遠端使用者名稱@ip -p 埠號
sudo ssh -i ~/.ssh/liyddsshkey [email protected] -p 23
SSH秘鑰遠端登入
基於ssh遠端登陸 客戶端首次遠端登入機器的時候會把遠端機器的公鑰儲存在 ssh know hosts,以後每次登陸到某伺服器的時候都會對比遠端機器的公鑰和存在本機的該伺服器的公鑰,如果不同就會終止登陸,防止黑客偽裝伺服器 基於秘鑰遠端登陸 1.ssh key使用非對稱加密方式生成公鑰和私鑰 2.私...
秘鑰登入,免密碼登入
case1 需求 db伺服器需要免密碼訪問ap伺服器 1.公鑰私鑰的作成 被訪問伺服器中做成 ap 1 ap 2 su batch ssh keygen t rsa b 2048 這個過程直接按enter鍵 公鑰做成authorized keys cd home batch ssh cat id r...
Linux系統使用秘鑰登入配置
參考 1.然後使用puttygen生成金鑰,將生成的金鑰儲存 2.儲存私鑰將公鑰複製儲存到linux伺服器的authorized keys檔案裡面 vim root ssh authorized keys 建立檔案authorized keys chmod 600 root ssh authized...