SSH原理及配置

2021-10-10 06:57:49 字數 4024 閱讀 1812

linux中ssh配置

ssh 為 secure shell 的縮寫,由 ietf 的網路小組(network working group)所制定;ssh 為建立在應用層基礎上的安全協議。ssh 是較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露問題。ssh最初是unix系統上的乙個程式,後來又迅速擴充套件到其他操作平台。ssh在正確使用時可彌補網路中的漏洞。ssh客戶端適用於多種平台。幾乎所有unix平台—包括hp-ux、linux、aix、solaris、digital unix、irix,以及其他平台,都可執行ssh。

ssh之所以能夠保證安全,原因在於它採用了非對稱加密技術(rsa)加密了所有傳輸的資料。

傳統的網路服務程式,如ftp、pop和telnet其本質上都是不安全的;因為它們在網路上用明文傳送資料、使用者帳號和使用者口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另乙個人或者一台機器冒充真正的伺服器接收使用者傳給伺服器的資料,然後再冒充使用者把資料傳給真正的伺服器。

但並不是說ssh就是絕對安全的,因為它本身提供兩種級別的驗證方法:

第一種級別(基於口令的安全驗證):只要你知道自己帳號和口令,就可以登入到遠端主機。所有傳輸的資料都會被加密,但是不能保證你正在連線的伺服器就是你想連線的伺服器。可能會有別的伺服器在冒充真正的伺服器,也就是受到「中間人攻擊」這種方式的攻擊。

第二種級別(基於金鑰的安全驗證):你必須為自己建立一對金鑰,並把公鑰放在需要訪問的伺服器上。如果你要連線到ssh伺服器上,客戶端軟體就會向伺服器發出請求,請求用你的金鑰進行安全驗證。伺服器收到請求之後,先在該伺服器上你的主目錄下尋找你的公鑰,然後把它和你傳送過來的公鑰進行比較。如果兩個金鑰一致,伺服器就用公鑰加密「質詢」(challenge)並把它傳送給客戶端軟體。客戶端軟體收到「質詢」之後就可以用你的私鑰在本地解密再把它傳送給伺服器完成登入。與第一種級別相比,第二種級別不僅加密所有傳輸的資料,也不需要在網路上傳送口令,因此安全性更高,可以有效防止中間人攻擊。

redhat使用了selinux來增強安全,關閉的辦法為:

a. 永久有效

修改 /etc/selinux/config 檔案中的 selinux=enforcing 修改為 selinux=disabled ,然後重啟。

b. 臨時生效

setenforce 0

關閉防火牆的方法為:

a. 永久有效

開啟:chkconfig iptables on

關閉:chkconfig iptables off

b. 臨時生效

開啟:service iptables start

關閉:service iptables stop

需要對兩台伺服器分別進行設定,關閉防火牆和 selinux 。

設定格式:#hostname [主機名] 。

立即生效: #bash

將a伺服器的主機名設定為 server1

將b伺服器的主機名設定為 server2

重啟 sshd 服務,使用命令:/sbin/service sshd restart 。

1.建立免密碼登入賬戶

在 server2 中建立乙個 guest2 賬戶 。

useradd guest1 //建立新使用者

passwd guest1 //設定新使用者登入密碼

2.生成秘鑰

從 root 使用者切換到要免密碼登入的賬戶,使用命令:su guest1 。

執行命令:ssh-keygen -t rsa

無需指定口令密碼,直接回車,命令執行完畢後會在 guest1 使用者的家目錄中(/home/guest1/.ssh)生成兩個檔案:

id_rsa: 私鑰

id_rsa.pub:公鑰

按照同樣的步驟,在 server2 中為 guest2 賬戶生成好秘鑰檔案。

3.將公鑰匯入到認證檔案

使用命令 cat authorized_keys 檢視 authorized_keys 檔案內容如下:

4.設定檔案訪問許可權

chmod 700 /home/guest1/.ssh

chmod 600 /home/guest1/.ssh/authorized_keys

執行完以上設定之後 server1 就能夠免密碼登入本機了,使用命令:ssh guest1@server1 。

注意:當 known_hosts 檔案中缺少主機名稱資訊時會提示如下資訊,輸入 yes 即可將主機名稱寫入 known_hosts 檔案並登陸成功。

至此,主機 server1 的 ssh 免密碼登入就算配置完成了,接下來配置 server2 。

5.將認證檔案複製到其他主機

執行以下命令將生成的 authorized_keys、known_hosts兩個檔案從 server1 複製到 server2 。

scp /home/guest1/.ssh/authorized_keys guest2@server2:/home/guest2/.ssh/authorized_keys

scp /home/guest1/.ssh/known_hosts guest2@server2:/home/guest2/.ssh/known_hosts

待複製完成以後,先使用以下命令設定檔案訪問許可權。

chmod 700 /home/guest2/.ssh

chmod 600 /home/guest2/.ssh/authorized_keys

然後,執行 ssh guest1@server1 命令就能夠使用server2的guest2賬戶免密碼登入server1的guest1賬戶了。

至此,兩台伺服器的ssh 免密碼登入就全部設定完成,如果出錯,請仔細檢查以上各個步驟。

SSH原理及實現

a.ssh 是種通用的網路傳輸加密機制 b.ssh採用的是不對稱加密方式傳輸,分乙個公匙和乙個私匙 公匙用來加密 私匙用來解密 ssh 目錄下可能存在的檔案 authorized keys 其他機器生成的公匙放在本機的,名字必須是這個 id dsa 密匙 id dsa.pub 公匙 known ho...

ssh無密碼登入原理及配置步驟

是否在為每次登入伺服器都要輸入密碼感到煩惱,想不想一次配置,以後直接免密碼登入 來,心動不如行動動!需求 a機器想要從此以後免密碼登入到b機器 ssh username ip b 直接登入,不再要求輸入密碼 參考公鑰 yue,四聲 和私鑰 既然要a機器免密碼登入b機器,那麼a機器只是不用密碼這種方式...

Centos中ssh免密登入原理及配置

免密登入原理圖 生成公鑰和私鑰 ssh keygen t rsa 一直回車 就會生成兩個檔案id rsa 私鑰 id rsa.pub 公鑰 將公鑰拷貝到要免密登入的目標機器上 ssh copy id 主機名 前提是配置了主機名和ip的對映關係,不然就要使用ip ss 件夾下 ssh 的檔案功能解釋 ...