ssh免密登錄設置方法


1 前提條件

  • 主機A,用戶名為aris,IP地址為192.168.1.1
  • 主機B,用戶名為leon,IP地址為192.168.1.2
  • 這兩台主機上均安裝了SSH服務器,且已經打開ssh服務;
  1. 檢查主機上有沒有安裝SSH服務,使用命令:ssh
  • 若提示命令未找到,則需要安裝ssh服務;步驟如下:輸入sudo apt-get update命令以實現更新Ubuntu系統–>輸入sudo apt-get install openssh-server命令以安裝ssh
  • 若輸出ssh命令的使用說明,則代表已經安裝了。
  1. 檢查主機上有沒有啟動SSH服務,使用命令:service --status-all | grep ssh
  • 若服務已經啟動的話,可以看到[+] ssh
  • 若服務還沒啟動的話,可以看到[-] ssh
  1. 啟動ssh服務,使用命令sudo service sshd start

2 主機A利用ssh免密登錄主機B

(1)在主機A上生成rsa密鑰對

在命令行下輸入命令:ssh-keygen -t rsa,所有提示均按回車默認。

在這里插入圖片描述

之后你會發現在用戶的家目錄下回自動生成一個隱藏的文件夾“.ssh”,里面會有兩個文件,分別是id_rsa和id_rsa.pub。
在這里插入圖片描述

  • id_rsa是本機的私鑰,在使用ssh協議向其它主機傳輸數據前,主機會使用該私鑰對數據進行加密;
  • id_rsa.pub是本機的公鑰,因為ssh協議采用非對稱加密法(公鑰可以用來解密使用私鑰進行加密的數據,同樣,私鑰也可以用來解密公鑰進行加密的數據),所以主機一般將該公鑰放到其它需要遠程登錄到的主機的ssh服務器中;

(2)將主機A上生成的公鑰傳到主機B中

有兩種方法:

一是使用命令:
  • 在主機A的命令行上執行ssh-copy-id leon@192.168.1.2,就可以將主機A上生成的公鑰傳到主機B中。
二是手動操作:
  • 首先在主機A上執行命令 scp .ssh/id_rsa.pub leon@192.168.1.2:~/home,命令執行成功后會將主機A的公鑰傳到主機B的家目錄里。
  • 切換到主機B,命令行執行cat ~/home/id_rsa.pub >> ~/.ssh/authorized_keys,將主機A的公鑰添加到主機B的授權列表中。

(3) 主機A上重啟ssh服務

完成以上2步之后,在主機A上重啟ssh服務后即可免密碼登錄主機B了

  • 在主機A上執行命令sudo service ssh restart
  • 再執行ssh leon@192.168.1.2,你會發現已經免密登錄了。
    在這里插入圖片描述
  • 說明:圖中輸入的命令是ssh leon@ubuntu,為何不是IP地址呢?
    這是因為我們在/etc/hosts文件中指定了ubuntu的ip地址為192.168.1.2

3 主機B利用ssh免密登錄主機A

  • 道理是一樣一樣的,只需要將主機B的公鑰添加到主機A的授權列表中即可達到免密登錄的目的。在此,就不再演示了。

4 彩蛋——配置別名,一鍵登錄

  • 有些“懶人”可能會說,每次使用ssh命令登錄的時候,都要輸入遠程主機的用戶名、IP地址,挺麻煩的。有沒有好的辦法,能輸一個簡單的命令就好了呢?
  • 答案,是肯定的!因為科技就是懶人創造的。

想要達到的目的:主機A下鍵入“ssh mac”就可以免密登錄到主機B

(1)主機A命令行下打開config文件
  • 執行命令vim ~/.ssh/config,創建或打開ssh配置文件
(2)在config文件中添加如下內容:
Host mac
    HostName 192.168.1.2
    User leon
    Port 22
(3)保存內容后退出

現在,你就可以愉快的登錄了。當然,此處的mac你可以根據自己的喜好,隨意指定;User、HostName根據你需要連接的遠程端主機確定。


獲取更多知識,請點擊關注:

嵌入式Linux&ARM
CSDN博客
簡書博客
知乎專欄



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM