日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SSH-key连接原理

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSH-key连接原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1,我們想通過遠程的方式從我的電腦遠程連接到對方的電腦上那么在LINUX系統下我們可以通過一種叫ssh的方式連接過去。SSH客戶端(ssh命令)還包含一個很有用的遠程安全拷貝命令scp。

2,有兩種連接方式,

(1)telnet? 這種是明文的容易讓黑客捕獲。

應用方式:安裝telnet(遠程登錄的意思)

Yum –y install telnet

安裝好后怎么鏈接呢?

如 telnet 192.168.112.356 22????? IP是對方IP地址

????????????????????????????????????????????????????????????????????? 22端口號、

當然對方也要安裝telnet

?

(2)ssh 是經過加密的。

3,ssh有兩種級別的連接方式

第一種級別(基于口令的安全驗證)

只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的服務器就是你想連接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到“中間人”這種方式的攻擊。第二種級別(基于密匙的安全驗證)

需要依靠秘鑰,也就是你必須為自己創建一對密匙,并把公用密匙放在需要訪問的服務器上。客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求之后,先在該服務器上你的主目錄下尋找你的公用密匙,然后把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密匙加密“質詢”(challenge)并把它發送給客戶端軟件。客戶端軟件收到“質詢”之后就可以用你的私人密匙解密再把它發送給服務器。

總結1,

ssh連接第一級別:

?ssh連接默認端口是22

(1)

?有兩臺電腦 A和B.?????????????????????? A要登錄 B電腦的超級用戶

#ssh 192.168.29.144?????????????????? 登錄超級用戶IP前不用加@

第一次連接 會問你 記錄不記錄對方IP地址, 必須記錄 YES

之后對方密碼彈出 輸入對方的密碼回車

用hostname –I? 查看下本機IP地址,這樣就是對方的IP地址對方的主機了。

然后exit退出,就等退出了

?

(2)

有兩臺電腦 A和B.?????????????????????? A要登錄 B電腦的普通用戶? (不是超級用戶)

添加個用戶

??? 如我現在在另一臺電腦添加用戶

???? Useradd yunjisuan?? 創建一個叫yunjisuan 的用戶?? 路徑時/home 目錄

???? Echo “123123” | passwd? - -stdin yunjisuan?? 給yunjisun 用戶添加密碼。

我現在在第一臺電腦我用ssh連接另一臺電腦的 yunjisuan用戶

A電腦 輸入: ssh yunjisuan@192.168.,29.144? (ip地址前不加東西就是超級用戶)

之后輸入密碼:123123???? 就登錄進去了

?

?

(3)

遠程復制在電腦雙方都要安裝 scp命令

yum insiall openssh-clients?? (打開ssh客戶端)? 安裝scp遠程復制命令

之后怎么做呢?

1,我在A電腦

映射一句話??? 到/etc/hosts里

?# echo "'hostname –I' www.yunjisuan.com" >> /etc/hosts

Cat /etc/housts 看一下。 沒問題

再用scp復制,把A的housts目錄復制到B電腦? 超級用戶 /root/etc下

#scp /etc/hosts? 192.168.29.144:/etc/回車? 復制hosts這個目錄過去。

注意:沒加root@192.168.29.1144 就是默認超級用戶登錄。

上B電腦查看 cat /etc/hosts? 就有了

?

? 2,以上我是把我A電腦的數據復制過。

去接下來。

我要把B電腦的數據拉過來怎么操作呢??

? 用#:scp root@192.168.29.144:~/222 .

? ??????這是把B電腦的? 根下YYY文件復制到我A電腦的 ?點 當前目錄下。

?

?

?

總結2

ss h連接第二級別

秘鑰的意義就在于不用輸密碼,就進入對方的服務端。

1,首先? 創建秘鑰對

ssh??? Tab一下 會發現很多命令

?? Ssh-Keygen 生成秘鑰對的命令 ???(交互生成秘鑰)

Ssh-copy-id分發秘鑰對的命令

(1)# Ssh-Keygen 回車

會出來這三樣,第一個…..(/root/.ssh/id_rsa) 這是這個命令 在根下root下 .ssh 點就是隱藏文件。后邊的id_rsa就是秘鑰對的名字???? (在這個目錄下生成一個叫id_rsa的文件)??????????

?????????????????????? 第二個是密碼? 直接回車不設就行

?????????????????????? 第三個也是密碼,直接回車

?????????????????????? 就創建完了。

(2)#ls .ssh?? 看一下? 有三個文件 分別是

id_rsa 私鑰???? id_rsa.pub 公鑰?????????? known_hosts遠程登錄記錄

客戶端拿私鑰???? 服務端拿公鑰 (就是誰登錄誰 就把公鑰發給誰)

私鑰可以有很多份,但公鑰只能有一份,私鑰去找公鑰。

(3)我現在在客戶端創建了秘鑰對

??????? 現在得把公鑰給服務端復制過去????????????????????

怎么操作呢??

首先(1)在服務端家目錄下創建一個 mkdir? .ssh? 目錄

(2)ll? -d? .ssh/?? 看看他是什么權限?? 為什么看呢?因為你的秘鑰權限過大,Linux系統擔心安全是不會讓你成功的。

所以你得給它設置下權限(客戶端服務端雙方都要設置700權限)

????? #:chmod 700 .ssh/???????????? 它權限必須是700

(3)在服務端把公鑰改名vi /etc/ssh/sshd_config

???????? 進入編輯器在47行? 復制authorized_keys 這個名字

????????? mv id_rsa.pub authorized_keys???? 改成這個名字

?????????????????? set nu?????????????????????????????????? 顯示行號

?

或者cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys? 這樣改名

?

(5)現在來客戶端把公鑰 復制過去給服務端(或者相反)

#:scp .ssh/authorized_keys 192.168.29.144:~/.ssh/

(6)還有些提高效率的操作。

vim /etc/ssh/sshd_config 后??

79行改成no???????????? (centOS6是81行 改成on)? 這是驗證改成on 不驗了

115行改成no?????????? (centOS6是122行 改成on)?? NDS 改成no

之后重啟一下systemctl restart network

然后scp /etc/ssh/sshd_config root@192.168.29.144:/etc/ssh/

這個sshd_config這個修改后的配置文件給對方發過去。覆蓋對方的配置文件(省得對方改了)? 這是ssh的配置文件。

對方也重啟一下systemctl sshd reload

(7)ssh? 192.168.29.144? 這就無密碼的連接上了?

?結束???? ??????這就是秘鑰連接 免秘鑰的過程。

但是你連普通用戶照樣還有密碼,除非普通用戶也有公鑰照以上這么改。

?

示范一下連接普通用戶

前提:要在對方電腦上創建個普通用戶

(1)Useradd yunjisuan?? 創建一個叫yunjisuan 的用戶? 路徑在/home 里

???? ?????Echo “123123” | passwd –stdin yunjisuan?? 給yunjisun 用戶添加密碼。

??????? (2)然后進去對方電腦普通用戶下(yunjisuan下)創建

#:mkdir?? .ssh 目錄???

在改.ssh的屬主為yunjisuan?? #:chown yujisuan? .ssh

??????????????? 權限為700?????????? #:chown 700? .ssh

?????????????????????????????????????????? #:ll –d .ssh?? 查看下

(3) 因為普通用戶里沒有.ssh目錄。所有要把我方的公鑰給復制過去到yunjisuan用戶的超級用戶也就是~家目錄里

#scp ~/.ssh/authorized_keys yunjisuan@192.168.29.144:~

(4)然后進去對方電腦cd /home/yunjisuan? 就有authorized_keys文件了。

在把authorized_keys移到? .ssh里

mv authorized_keys? .ssh

(5)但是這時我進的是普通用戶,普通用戶要能用這文件就要把authorized_keys的屬主改成普通用戶:???

#:chown yujisuan? authorized_keys

(6)連接ssh yunjisuan@192.168.29.144 就連接上了

?

?

?總結3

ssh 秘鑰連接的簡化方式

在客戶端.ssh下? 還有個ssh-copy-id? 它是用來分發公鑰的剛才服務端做的那些操作它都能自動來完成。

(1)

一條命令生成秘鑰對。 而不用之前的ssh-Keygen 生成秘鑰對的命令? (交互生成手動分發)

??????? -d dsa?? 指定加密算法 dsa

???????? -f???????? 指生成的秘鑰放在哪里

???????? -P???????? 杠大P “”里邊沒東西就是空密碼

#ssh-keygen –t dsa –f ~/.ssh/id_dsa –P “” 回車

(2)一條命令分發

我現在要分發

???????? -i??? 你要分發什么?(要分發這個~/.ssh/id_dsa.pub公鑰)

???????? ssh-copy-id –i ~/.ssh/id_dsa.pub yunjisuan@192.168.29.144

?????????? 現在進入服務端 家目錄下/home

Ls –a 看一下? yunjisuan

最后一行多了一個700權限屬主屬組都是yungjisuan(直接就把權限改了)

回車后再看下.ssh里邊公鑰在不在。

??? 之后用客戶端直接連接服務端。可以了

(3) 但是以上步驟分發秘鑰時還需要輸入密碼。? 怎么把這個密碼也刪掉呢?

?????? 有個命令叫sshpass??? 需要云yum安裝本地yum沒有

sshpass –p “123123”?? 輸入密碼之后再分發。

???? ??#sshpass –p “123123” ssh-copy-id –i ~/.ssh/id_dsa.pub yunjisuan@192.168.29.144

????? 之后登陸OK了

(4)cd .ssh回車

Ls里有個這個目錄? known_hosts?

這是記錄來訪的IP? 如果要清空了,再去登陸對方還要輸入密碼

清理方法是[.ssh] #? > know_hosts

怎么做我在清空known_hosts后,在連接對方,還能免密的連接上呢?

需要再加幾個參數:

–o StrictHostKeyChecking=no

#sshpass –p “123123” ssh-copy-id –i ~/.ssh/id_dsa.pub “–o StrictHostKeyChecking=no? yunjisuan@192.168.29.144” 回車

(5)在連接就可以了?????????????????????????????????????????? 結束

轉載于:https://www.cnblogs.com/changtianwei/p/9936178.html

總結

以上是生活随笔為你收集整理的SSH-key连接原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。