SSH 實現免密登入

weixin_33895657發表於2017-11-05
5430305-614fd214a602b47e.jpg
linux.jpg

本文介紹如何通過 SSH 實現免密登入。

工作環境:

  1. 本機 macOS 10.12.6
  2. 虛擬機器工具 Paralles
  3. Liunx :centos 7 mini (注意:6 和 7 的配置有區別)

SSH 協議是什麼

SSH 是一種網路協議,用於計算機之間的加密登入。SSH是英文Secure Shell的簡寫形式。

通過使用SSH,你可以把所有傳輸的資料進行加密更加安全可靠。使用SSH,還有一個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。SSH 有很多功能,它既可以代替 Telnet,又可以為FTP、Pop、甚至為 PPP 提供一個安全的"通道"。

SSH 協議更多內容看最後附的連結,有興趣的朋友可以瞭解一下。

配置主機間的免密登入

配置免密登入

什麼是免密登入呢?

通常我們登入 SSH 是通過賬號和免密來登入的,輸入ssh username@ip-server然後輸入密碼。

如果每次都輸入密碼會很麻煩,而且要對多臺主機進行自動化管理,每次都要輸入密碼不現實。我們可以配置公鑰和金鑰進行免密登入。免密登入做的事情其實就是通過 SSH 的公鑰和金鑰來校驗身份資訊。

首先你要知道每臺主機有一份公鑰和一份私鑰。我們要做的事情可以用一張圖來表示:

5430305-5e85330048201993.png
配置過程

圖片的操作依次為

1.生成密匙對

ssh-keygen

之後可以在/root/.ssh中看到生成的密匙對

[root@main /]# cd /root/.ssh/
[root@main .ssh]# ls
id_rsa id_rsa.pub

2.拷貝一份 A 的公鑰給 B

ssh-copy-id 192.168.0.10
輸入密碼

此時在 B 的authorized_keys中就會有一份 A 的id_rsa.pub公鑰資訊。

注:第二步操作的做的事情其實就是一個拷貝金鑰的工作,也可以手動拷貝,但是用上面的命令更方便。

3.最後我們就可以免密登入,也就是不輸入密碼 A 就可以登入 B

ssh root@192.168.0.10

192.168.0.10 為 B 的 ip 地址

如果要退出登入,輸入exit即可。

給主機起一個別名

192.168.0.10 是 ip 地址,也就是說登入的時候我們還要輸入一次 ip。我們可以給每個主機配置一個別名,用ssh ip-server的方式登入。

就像人有身份證也有名字一樣,我們可以通過 ip 來辨識主機。給他一個別名就是給一個hostname

可以用hostname來檢視你的主機名,要改主機名改他的配置檔案

vi /etc/hostname
在其中替換為你要改的名字,比如 main

重啟生效

reboot

這樣主機名已經改掉了,還差一步。我們要讓主機名和我們的 ip 關聯在一起,修改/etc/hosts檔案

vi /etc/hosts
新增上 ip 和 hostname 的鍵值對

例如:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.11 main
192.168.0.10 slave

兩邊都配置完成可以用ssh slave直接連線slave。如果你想自己免密連線自己那就按照上面的步驟給自己配置一份密匙就行了,動手試試吧。

SSH 協議是什麼以及更多參考

SSH 協議介紹

數字簽名是什麼

SSH原理與運用(一):遠端登入

SSH原理與運用(二):遠端操作與埠轉發

如何在CentOS 7上修改主機名

相關文章