telnet:遠(yuǎn)程登錄铣焊,23/tcp應(yīng)用層協(xié)議
C/S
S:telnet服務(wù)器
C:telnet客戶端
ssh:Secure SHell 也是遠(yuǎn)程登錄協(xié)議,也是應(yīng)用層協(xié)議:22/tcp
ssh整個(gè)通訊過程和認(rèn)證過程都是加密的玄妈,還能實(shí)現(xiàn)主機(jī)認(rèn)證
用戶認(rèn)證過程加密
數(shù)據(jù)傳輸過程加密
另外一種不用傳遞密碼的驗(yàn)證方式,只需要通過用戶名+隨機(jī)數(shù)就可以登錄認(rèn)證:
客戶端和服務(wù)器端都維護(hù)一個(gè)對(duì)稱秘鑰髓梅,客戶端生成一對(duì)公鑰和私鑰拟蜻,然后把公鑰先給服務(wù)器,以后客戶端要登錄的時(shí)候枯饿,直接生成一個(gè)隨機(jī)數(shù)據(jù)+用戶名酝锅,用對(duì)稱秘鑰加密,然后用私鑰再加密奢方,發(fā)送給服務(wù)器搔扁,服務(wù)器用對(duì)稱秘鑰揭秘,再用公鑰解密蟋字,如果能得到數(shù)據(jù)阁谆,就說明客戶端是合法的客戶端。
主機(jī)認(rèn)證過程:
基于口令認(rèn)證(用戶名和密碼)
基于秘鑰認(rèn)證(即上面說的那種:用戶名+隨機(jī)數(shù))
協(xié)議:規(guī)范
實(shí)現(xiàn):服務(wù)器端愉老,客戶端
Linux:openSSH
C/S架構(gòu)
服務(wù)器端:sshd,配置文件在/ect/ssh/sshd_config
客戶端:ssh剖效,配置文件在/ect/ssh/ssh_config
ssh-keygen:秘鑰生成器(為某個(gè)用戶生成一對(duì)秘鑰)
ssh-copy-id:將公鑰傳輸至遠(yuǎn)程服務(wù)器
scp:跨主機(jī)安全復(fù)制工具
ssh:指定那一個(gè)主機(jī)用戶來登錄
ssh username@HOST
ssh -l username HOST
ssh username 'command' 以某個(gè)用戶在遠(yuǎn)程服務(wù)器上執(zhí)行某任務(wù)
scp:
scp SRC DEST (源可以本地也可以是服務(wù)器)
-r
-a
scp username@HOST:/path/to/somefile /path/to/local 遠(yuǎn)程到本地
scp /path/to/local username@HOST:/path/to/somefile 本地到遠(yuǎn)程
ssh-keygen: 幫我們?cè)诳蛻舳松梢粚?duì)秘鑰
-t rss
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
公鑰追加保存到遠(yuǎn)程主機(jī)某用戶的家目錄下的.ssh/authorized_keys文件或.ssh/authorized_keys2文件當(dāng)中
ssh v1(無法避免中間人攻擊),v2
主機(jī)秘鑰
非對(duì)稱加密
Secret key--服務(wù)器
Public key--客戶端
客戶端我們?nèi)ツ睦锬玫剿墓€嫉入?如果本地沒有,通訊時(shí)接收對(duì)方公鑰
客戶端拿到公鑰之后璧尸,生成對(duì)稱密碼咒林,把這個(gè)密碼發(fā)送給服務(wù)器(秘鑰交換)
接下來數(shù)據(jù)用對(duì)稱密碼加密(因?yàn)閷?duì)稱加密比非對(duì)稱加密快:十的三次方數(shù)量級(jí))
為了安全性:
1.用普通用戶登錄,之后再切換root用戶
2.定期更新密碼