配置ssh,使用自定義 ssh-key 訪問特定的服務器

Mac os 下能夠直接在終端中使用內置的ssh命令,經過ssh-key來訪問遠程服務器。經過證書登陸服務器能夠保證安全性,還能提升登陸的速度,免去輸入密碼的麻煩。安全

Mac os 下,ssh證書是默認存放在 ~/.ssh 目錄下的,Linux系統也是如此。默認的ssh-key文件是:id_rsa 和 id_rsa.pub。服務器

你可使用一個ssh-key用於多個服務器之間的登陸,也能夠針對不一樣的服務器,使用不一樣的ssh-key文件。dom

下面介紹使用一個自定義的ssh-key文件訪問特定的服務器。ssh

生成證書

mac默認提供了ssh-keygen,咱們可使用此工具來生成公鑰和私鑰。ide

MacBook-Pro:~ henry$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/henry/.ssh/id_rsa): /Users/henry/.ssh/test_rsa          #詢問保存路徑,若是默認,則在當前用戶的 ~/.ssh 目錄下生成id_rsa文件。這裏咱們自定義一個key,取名:test_rsa
Enter passphrase (empty for no passphrase):                                #若是你想用密碼來保護你的證書,能夠選擇在這裏輸入。
Enter same passphrase again:                                      #若是輸入了密碼,須要再次輸入該密碼
Your identification has been saved in /Users/henry/.ssh/test_rsa.
Your public key has been saved in /Users/henry/.ssh/test_rsa.pub.
The key fingerprint is:
SHA256:V4RNi8fLUgeiCRMY6UJU8YR73SQ//JTgdSMBjyBJKws henry@MacBook-Pro.local
The key's randomart image is:
+---[RSA 2048]----+
| ...+BBo. o==.   |
|  . +o.=.++B+oo  |
| .E...o.oBooB+.. |
|  ..oo. . *=oo   |
|   ...  S o+o    |
|         . ..    |
|                 |
|                 |
|                 |
+----[SHA256]-----+

clipboard.png

在該操做後,咱們生成了一個key,包括私鑰和公鑰,分別是:工具

/Users/henry/.ssh/test_rsa
/Users/henry/.ssh/test_rsa.pub

將公鑰安裝到遠程服務器上

可使用rsync或scp或ssh-copy-id。spa

1.使用rsync或scp的方法(兩者選擇其一便可):code

rsync -av ~/.ssh/test_rsa.pub username@remote:~/.ssh/authorized_keys
scp ~/.ssh/test_rsa.pub username@remote:~/.ssh/authorized_keys

2.使用ssh-copy-id的方法:ip

點擊ssh-copy-id查看工具獲取方法。
必需要使用參數i指定公鑰的路徑。否則傳送的公鑰會出現錯誤,內容被替換爲錯誤信息『The agent has no identities.』。rem

ssh-copy-id -i ~/.ssh/test_rsa.pub username@remoteMachine

修改config配置文件(非自定義key可忽略該步驟)

在 ~/.ssh 目錄下,有個文件:config。要使用特定的私鑰訪問特定的服務器,須要在config裏作相應的配置,否則,ssh工具會默認使用 id_rsa 的私鑰進行登陸驗證。若是不是自定義的key,能夠不作該操做。

config文件的地址: ~/.ssh/config

舉個栗子?,咱們想用test_rsa這個私鑰來訪問服務器:11.11.11.11(隨便寫一個),登陸的用戶名是username,config裏的配置以下:

# 登陸服務器:11.11.11.11,使用私鑰test_rsa
Host 11.11.11.11
User username
IdentityFile ~/.ssh/test_rsa

登陸遠程服務器

設置好上面幾步以後,就能夠用 ssh-key 來登陸遠程服務器了,直接在終端中使用 ssh 命令便可。

好比,要訪問服務器的IP地址是:11.11.11.11

ssh 11.11.11.11

若是用戶名沒有錯的話,就能夠登陸成功了。

clipboard.png

相關文章
相關標籤/搜索