SSH config 配置文件實現免密登陸


SSH 最常用的登陸方法是ssh username@server -p port

本文將通過~/.ssh/confg配置文件,實現免密、更改名稱的登陸方法,不論你的username、server address、port是什么,都可以不用輸入,只需要輸入一個替換的名稱即可登陸該服務器。像這樣ssh <any name here>

Tips: 這里所有的操作都是在本地進行的,不需要遠程登陸服務器。

1. 實現免密登陸
1.1 rsa 文件生成
如果你~/.ssh目錄下面有 id_rsa 和 id_rsa.pub公鑰、私鑰兩個文件,可以跳過此步驟

使用ssh-keygen命令來生成rsa秘鑰文件到~/.ssh目錄下

$ ssh-keygen -t rsa


你可以到~/.ssh目錄下查看生成的id_rsa id_rsa.pub兩個文件。

1.2 將公鑰 rsa.pub 上傳到服務器
使用ssh-copy-id命令將生成的公鑰上傳到服務器

$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@server -p 22

 

ssh-copy-id命令需要提供你服務器的登陸方式和用戶密碼。

1.3 測試是否可以免密登陸
可以通過原來的方法登陸服務器,如果登陸過程沒有要求你輸入密碼,那么說明上傳的公鑰成功了。
登陸之后,你可以到~/.ssh文件夾下面,查看authorized_keys文件,查看里面添加的公鑰是不是你上傳的。(可以檢查是否上傳正確或誤操作)
2. config 文件配置
config 文件配置可以實現給你的username、server address、port統一分配到一個別名上,那么你登陸服務器時,只需要ssh <any name here>即可登陸。

配合免密登陸,可以大大減少登陸服務器的輸入操作。

2.1 創建 config 文件
在~/.ssh目錄下創建 config 文件

$ cd ~/.ssh
$ touch config

 

2.2 配置 config 文件
config 文件的配置格式如下

# 其模板如下
Host <any name here>
  HostName <your server address>
  Port <22>
  User <username>
  IdentitiesOnly yes
# 一個具體的例子
Host aliyun
  HostName 192.168.21.43
  Port 22
  User vkso
  IdentitiesOnly yes

 

如上配置成功后,如果我想登陸這個aliyun服務器,那么我只需要在命令行輸入如下命令即可免密登陸

$ ssh aliyun

 

3. 總結
通過免密登陸和配置文件,可以大大減少登陸服務器時候的操作次數。對於擁有多台服務器的運維人員來說,應該是必備技能哈~

 


免責聲明!

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



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