可能是最近比較忙吧。。。
場景:要通過自己的linux登入遠端的別人linux
在自己的linux上生成私鑰和公鑰,然後把自己的公鑰發給別人(公鑰是可以隨便發的,想發給誰就發給誰),私鑰自己儲存(私鑰是不能讓任何人拿到的)
1、生成自己的公鑰私鑰的命令
ssh-keygen -t rsa
使用rsa來做公鑰秘鑰(rsa:一種非對稱加密演算法)
如圖(連按3次回車)
第乙個回車的意思:是否在預設路徑上生成私鑰
第二個回車的意思:輸入私鑰密碼(可為空)
第三個回車的意思:重複輸入私鑰密碼
執行了這個命令之後,會在~/.ssh目錄下生成兩個檔案
id_rsa(自己的私鑰)
id_rsa.pub(可以發給別人的公鑰)
注意:如果以前生成過但是不成功,建議刪除當前使用者的家目錄(執行
cd ~就可以進入家目錄)下的
.ssh資料夾(這是乙個隱藏資料夾,可以
ll -a來檢視)
接下來是第二步
2、將自己的公鑰傳送給你想要遠端登入的機器!
ssh-copy-id -i ~/.ssh/id_rsa.pub 《遠端機器的ip>
或者
ssh-copy-id -i ~/.ssh/id_rsa.pub 《遠端機器的使用者名稱》@《遠端機器的ip>
第一條命令預設寫到遠端機器的root使用者下,第二條命令預設寫在遠端機器的《遠端機器的使用者名稱》
然後輸入密碼,就成功了!
當你在執行這條命令的時候,實質就是把自己的公鑰(id_rsa.pub)寫入到《遠端機器對應使用者》的家目錄下的.ssh的authorized_keys這個檔案中!!
所以基於這樣的原理,我們也可以使用命令
把自己的公鑰新增到遠端機器的authorized_keys中
scp -p ~/.ssh/id_rsa.pub root@<遠端機器的ip>:/root/.ssh/authorized_keys
順便附帶一篇寫得很不錯的scp命令的使用
3、以上兩條命令執行成功後,就可以免秘鑰登入對方機器了
ssh 《遠端機器的使用者名稱》@《遠端機器的ip>
所以其實就是自己的機器要登入其他機器的時候使用私鑰加密自己的資訊之後,用遠端機器對應的公鑰解密從而驗證身份真實性。4、.ss**件夾中的幾個檔案都有什麼用?id_rsa:自己的私鑰
id_rsa.pub:自己的公鑰,可以發給別人的
authorized_keys:其他機器的公鑰
known_hosts:自己這台機器登入過其他哪些機器(通過ssh登入的)
注:如果有黑客登入了你的機器,然後用你的機器惡意攻擊其他機器,那。。。known_hosts這個檔案裡應該會有黑客登入過哪些其他機器的哪個使用者的證據
最後附上一張圖(如果我上面的文字沒有描述清楚的話)
所以如果是遠端機器也要免秘鑰登入自己的機器,那就需要遠端機器把遠端機器的公鑰傳送到自己機器的authorized_keys檔案中!!
秘鑰登入,免密碼登入
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...
SSH免秘鑰登入
ssh配置 主機a 10.0.5.199 主機b 10.0.5.198 需要配置主機a無密碼登入主機a,主機b 先確保所有主機的防火牆處於關閉狀態。在主機a上執行如下 1.cd ssh 2.ssh keygen t rsa 然後一直按回車鍵,就會按照預設的選項將生成的金鑰儲存在.ssh id rsa...
linux免秘鑰登入
在cdh中需要任意兩個節點之間都可以免秘鑰登入。節點兩兩免秘鑰的根本原理如下 假設a節點需要免秘鑰登入b節點,只要b節點上有a節點的公鑰,那麼a節點就可以免密登入當前b節點。yum y install openssh clientscd ssh localhost 這裡會需要輸入節點密碼 exits...