ssh詳解

ssh講解

.加密、解密

1.數據加密與解密

              加密(算法)

      解密(算法)



明文                                                                       密文

2.加密算法

1)對稱加密算法:數據發送方將明文原始數據)和加密密鑰起經過特殊加密算法處理後,使其變成複雜的加密密文發送出去。接收方收到密文後,需要使用加密相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密。

算法:DES,AES

優點:算法公開、計算量小、加密速度快、加密效率高。

缺點:在數據傳送前,發送方和接收方必須商定好密鑰,如果一方的祕鑰被泄露,那麼加密信息也就不安全了。另外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的唯一祕鑰,這會使得收、發雙方所擁有的鑰匙數量巨大,密鑰管理成爲雙方的負擔。

wKioL1fOO5HAJK9pAALFVpALgMs102.png-wh_50

2)非對稱加密算法:假設A要連接主機B A先生成一對密鑰。 A將公鑰發送給B,私鑰自己保留。B生成一個隨機數並用A的公鑰加密發送給AA用私鑰解密。A將解密後的隨機數發送給BB發現隨機數是正確的則認證通過。

算法RSA,DSA

優點:非對稱加密使用一對密鑰,一個用來加密,一個用來解密,而且公鑰是公開的,私鑰是自己保存的,不需要像對稱加密那樣在通信之前要先同步密鑰。

缺點:加密和解密

3)單向加密算法:提取數據特徵碼,特徵碼使用某一算法計算得出。A將明文和特徵碼發送給BB用相同算法計算特證碼,若得出的特徵碼相同,則明文一致,保證數據的安全性。

算法:MD4MD5SHA,HMAC

  1. ssh及應用

1.ssh的安裝配置

1)安裝、服務

# yum install –y ssh

#rpm –qa | grep ssh

#/etc/init.d/sshd start

#netstat –tnl| grep 22   

2)文件解讀

花費時間長、速度慢,只適合對少量數據進行加密。

wKioL1fOO-LxSza7AAAdJBtguWI800.png-wh_50

Moduli       會話祕鑰交換信息

Ssh_config    客戶端配置文件

Ssh_config    服務端配置文件

文件命名中未包含rsadsa的爲sshv1版本的連接文件

文件命名中包含rsadsa的爲sshv2版本的連接文件,加密算法有rsadsa兩種

3)服務端配置文件解讀

#vim /etc/ssh/sshd_config

#空格                         純註釋

#port 22                       可啓用的參數,指定連接端口

#protocol 2                     ssh的版本

#AddressFamily  any            ipv4還是ipv6上提供ssh服務

#Listen Address                 只給這一個地址提供服務

PermitRootLogin  yes            允許root登錄

#KeyRegenerationInterval         祕鑰重新生成的時間

#ServerKeyBits                  祕鑰長度

#SyslogFacility                  日誌設備

#MaxAuthTime                  重試密碼次數

#RsaAuthentication               基於rsa認證

#PubkeyAuthentication            公鑰認證

#AuthorzedKeysFile              公鑰所在用戶家目錄

#PasswordAuthtication            密碼認證

1Ssh服務端:10.1.16.173

限制tom用戶登錄ssh

# override default of no subsystems

Subsystem sftp  /usr/libexec/openssh/sftp-server

DenyUsers tom

wKioL1fOPA_hu1FzAABnSybjGrI167.png-wh_50

2)給指定的ip提供ssh服務,只給174提供ssh服務,在文件最後一行添加以下內容:

服務端:

# vim /etc/ssh/shd_config

AllowUsers

#/etc/init.d/sshd restart

客戶端連接測試:10.1.16.174連接成功

wKioL1fOPELxJkG8AABRjDsIb_Y238.png-wh_50

10.1.14.36連接失敗

wKiom1fOPG6RibSyAAAaPVefHkM307.png-wh_50

2.ssh的認證機制

  1. ssh基於口令的認證

1)用戶向遠程主機發登錄請求:ssh user@遠程主機

2)遠程主機收到用戶的登錄請求,把自己的公鑰發給用戶。

2)用戶使用這個公鑰,將登錄密碼加密後,發送回遠程主機。

3)遠程主機用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄。

#ssh –l username 10.1.16.173,l表示登錄名(login name

#ssh [email protected]

wKioL1fOPJrDdqp9AABrjaHocms080.png-wh_50

注:當遠程主機的公鑰被接受以後,它就會被保存在$HOME/.ssh/known_hosts之中。下次再連接這臺主機,系統就會認出它的公鑰已經保存在本地了,從而跳過警告部分,直接提示輸入密碼authorized_keys是遠程主機將用戶的公鑰,保存在登錄後的用戶主目錄的$HOME/.ssh/authorized_keys文件中。

                                                                                                          

#ssh [email protected] ‘ifconfig’

Ssh可將被連接主機上的命令運行後返回本機

  1. 基於密鑰的認證->使用非對稱加密算法

用戶將自己的公鑰儲存在遠程主機上。登錄的時候,遠程主機會向用戶發送一段隨機字符串,用戶用自己的私鑰加密後,再發回遠程主機。遠程主機用事先儲存的公鑰進行解密,如果成功,就證明用戶是可信的,直接允許登錄shell,不再要求輸入密碼,這和之前的ssh賬號密碼也沒有直接關係。

#ssh-keygen –t rsa        #也可以不加-t rsa

#ssh-copy-id user@host

#ssh [email protected]

3.scp及sftp簡單應用

Scp:基於ssh的遠程複製命令,可以實現在主機之間傳輸數據

Scp 【option】src dest

將遠端文件複製到本地

(1)Root用戶

#scp [email protected]:/etc/passwd /mnt          #複製文件

#scp –r [email protected]:/tmp/ /mnt             #遞歸複製目錄

#scp –p [email protected]:/tmp/file /mnt          #複製保留權限

將本地文件複製到遠端

#scp file [email protected]:/mnt                 #複製文件

#scp –r tom [email protected]:/mnt              #遞歸複製目錄

#scp –p file [email protected] :/mnt              #複製保留權限

2)普通用戶

#useradd tom

#su – tom

#scp file [email protected]:/mnt       #tom複製文件到對方的rootmnt目錄下#scp file [email protected]:          #tom複製文件file’jerry的家目錄下

#scp –r dir [email protected]       #tom複製目錄dirjerry的家目錄下

 3Sftp簡單應用    

Sftp [email protected]

可以使用putget等命令上傳下載文件



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章