Linux - SSH 服務器信任關係配置

介紹

SSH(Secure Shell)是一項創建在應用層和傳輸層基礎上得安全協議,爲shell提供安全得傳輸和使用環境。具體協議以及服務相關知識不再贅述,下面主要介紹如何配置服務器之間的信任關係。以配置A免密登錄到B爲例



生成密鑰

在A機器上通過ssh key-gen生成密鑰

[root@suhw ~]# eval `ssh-agent -s`
[root@suhw ~]# ssh-keygen -t rsa

若不指定存放密鑰的路徑以及名字的話,會默認生成在當前用戶家目錄下的.ssh目錄中生成一個私鑰和一個公鑰

[root@suhw ~]# ll /root/.ssh/
-rw------- 1 root root 2590 Jun 28 15:41 id_rsa
-rw-r--r-- 1 root root  563 Jun 28 15:41 id_rsa.pub

注:不可能每次生成密鑰都覆蓋掉之前的 ~/.ssh/id_rsa文件,建議在生成密鑰第一步時指定文件名,便於區分管理



配置公鑰

將生成的公鑰追加到B機器的authorized_keys文件中

1、如果B機器.ssh目錄下不存在authorized_keys文件,則通過touch命令新建,並將權限修改爲600

[root@suhw ~]# cd ~/.ssh && touch authorized_keys && chmod 600 authorized_keys

2、將A機器生成的id_rsa.pub公鑰追加到authorized_keys



相關配置

ssh的配置文件包含以下兩個:

  • ~/.ssh/config:用戶配置文件
  • /etc/ssh/ssh_config:系統配置文件

其中config配置中最常用的就是管理多組密鑰對,對於多個服務器指定對應的密鑰對,可以參考如下配置

HOST host1 # 關鍵詞
    User root    # 登錄用戶名
    HostName 10.47.119.96 # 主機名
    IdentityFile /root/.ssh/host1_id_rsa # 私鑰存儲地址
HOST host2
    User root 
    HostName 10.47.119.97
    IdentityFile /root/.ssh/host2_id_rsa 

有了上面的配置,當我們在A機器上執行ssh host1時就會匹配到對應Host的配置,相當於執行了

ssh -i /root/.ssh/host1_id_rsa [email protected]

這樣不論是ssh還是scp都會通過host匹配到對應的密鑰文件進行連接,十分方便


配置項說明

  • Host:執行ssh命令時如果匹配到該配置,例如將HOST修改爲kylin,在A機器上執行ssh kylin就相當於執行了ssh -i /data/suhw/.ssh/suhw_id_rsa [email protected]
  • HostName:主機地址
  • IdentityFile:指定讀取的認證文件路徑

其他具體參數可參考文章最後的鏈接



FAQ

1、若遇到報錯Could not open a connection to your authentication agent.

先執行 eval`ssh-agent -s`



參考

  • https://deepzz.com/post/how-to-setup-ssh-config.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章