開源服務專題之------ssh防止暴力破解及fail2ban的使用方法


   15年出現的JAVA反序列化漏洞,另一個是redis配置不當導致機器入侵。只要redis是用root啟動的並且未授權的話,就可以通過set方式直接寫入一個authorized_keys到系統的/root/.ssh/目錄下實現免密碼登陸他人的Linux服務器。從而達到入侵成功的效果。fail2ban是一款很棒的開源服務軟件,可以監視你的系統日志,然后匹配日志的錯誤信息(正則式匹配)執行相應的屏蔽動作(一般情況下是防火牆),而且可以發送e-mail通知系統管理員,很好、很實用、很強大!簡單來說其功能就是防止暴力破解。工作的原理是通過分析一定時間內的相關服務日志,將滿足動作的相關IP利用iptables加入到dorp列表一定時間。 本文將從以下四個方面是說明ssh防止暴力破解的常用方法以及如何用fail2ban來防止暴力破解。

 
        

一、實戰: sshd服務防止暴力破解

二、fail2ban的安裝。

三、fail2ban如何防止暴力破解

四、ssh服務器免秘鑰登錄

 說明:本文的服務器和客戶端說明

服務端:xiaolyu76        IP:192.168.31.76

 

客戶端:xiaolyu77         IP:192.168.31.77

 

一、實戰: sshd服務防止暴力破解

1、密碼足夠復雜,不使用弱口令

密碼的長度要大於8位最好大於14位。密碼的復雜度是密碼要盡可能有數字、大小寫字母和特殊符號混合組成,
拓展:弱口令
運維安全最核心的問題就是弱口令
qwe@123 1qaz2wsx 6yhnNHY^ 這些都是弱口令
為什么是弱口令? 因為這些都是英文鍵盤常見的組合。
強口令: 8位數以上的無規則大小寫和數字組合
之前發生的漏洞: 15年出現的JAVA反序列化漏洞,另一個是redis配置不當導致機器入侵。
只要redis是用root啟動的並且未授權的話,就可以通過set方式直接寫入一個authorized_keys到系統的/root/.ssh/目錄下實現免密碼登陸他人的Linux服務器。從而達到入侵成功的效果。

2、修改默認端口號

1)安裝nmap 掃描工具。nmap  

[root@xiaolyu77 ~]# rpm -qa | grep nmap
[root@xiaolyu77 ~]# yum install -y nmap

 

[root@xiaolyu77 ~]# nmap xiaolyu77 #掃描自己的ip地址 Starting Nmap 5.51 ( http://nmap.org ) at 2016-09-19 08:56 CST
Nmap scan report for xiaolyu77 (192.168.31.77) Host is up (0.0000080s latency). Not shown: 999 closed ports PORT STATE SERVICE 22/tcp open  ssh #22端口,判斷出來是ssh服務。 Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds [root@xiaolyu77 ~]# nmap xiaolyu76  #掃描xiaolyu76服務器的ip地址 Starting Nmap 5.51 ( http://nmap.org ) at 2016-09-19 08:57 CST
Nmap scan report for xiaolyu76 (192.168.31.76) Host is up (0.00028s latency). Not shown: 999 closed ports PORT STATE SERVICE 222/tcp open  rsh-spx #222端口判斷不出來是ssh服務,發生誤判。 MAC Address: 00:0C:29:58:6F:7B (VMware) Nmap done: 1 IP address (1 host up) scanned in 1.20 seconds

 

 

現在將服務器的端口修改成8099:

[root@xiaolyu76 ~]# vim /etc/ssh/sshd_config

3、不使用root用戶名登錄。

   是否可以禁止root身份登錄? 不行,因為有些程序需要使用root身份登錄並運行。另外判斷一個用戶是不是超級管理員,看的是用戶的ID是否為0。

 

[root@xiaolyu76 ~]# useradd mk #創建一個用戶mk,用它來冒充root用戶。

 [root@xiaolyu76 ~]# passwd mk   #給mk用戶添加密碼。
 Changing password for user mk.
 New password:
 BAD PASSWORD: it is too simplistic/systematic
 BAD PASSWORD: is too simple
 Retype new password:
 passwd: all authentication tokens updated successfully.

[root@xiaolyu76 ~]# vim /etc/passwd # passwd文件修改前 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin
xiao:x:500:500::/home/xiao:/bin/bash
mk:x:501:501::/home/mk:/bin/bash
#passwd文件修改后:(只修改了文件中表藍色的部分,修改后變成了這種顏色)

root:x:0:0:root:/root:/sbin/nologin   #修改后的root用戶,不在具有登錄權限了。
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
xiao:x:500:500::/home/xiao:/bin/bash
mk:x:0:0::/home/mk:/bin/bash  #修改后的mk用戶,它的uid,gid都為0。

也就是將/etc/passwd中的這兩行做了修改:

改:mk:x:500:500::/home/mk:/bin/bash

為:mk:x:0:0::/home/mk:/bin/bash

 

改:root:x:0:0:root:/root:/bin/bash

為:root:x:0:0:root:/sbin/nologin

 好了,修改完成,分別用root和mk這兩個用戶來登錄一下試試:

 

[root@xiaolyu77 ~]# hostname -i 192.168.31.77 [root@xiaolyu77 ~]# ssh -p 8099 xiaolyu76 root@xiaolyu76's password: 
Last login: Mon Sep 19 10:04:10 2016 from 192.168.31.160 Warning ! From now on, all of your operations have been recorded! This account is currently not available. Connection to xiaolyu76 closed. [root@xiaolyu77 ~]# ssh -p 8099 mk@xiaolyu76 mk@xiaolyu76's password: 
Last login: Mon Sep 19 10:06:00 2016 from xiaolyu77 Warning ! From now on, all of your operations have been recorded! [root@xiaolyu76 ~]# hostname -i 192.168.31.76 [root@xiaolyu76 ~]# whoami root [root@xiaolyu76 ~]# 

 

當然了,修改下面內容后,mk用戶也是登錄不上的。只判斷UID是否為0,不查看用戶名的:

[root@xiaolyu76 ~]# vim /etc/ssh/sshd_config

 

改:

#PermitRootLogin yes

為:

PermitRootLogin no 

再來登錄一下試試。

[root@xiaolyu76 ~]# ssh -p 8099 mk@xiaolyu76

 

 一般情況這個就可以解決了暴力破解的問題了。

 二、fail2ban的安裝。

  對於上面的三種方法來防止暴力破解,是遠遠不夠的,有一種情況,暴力破解問題比較嚴重, 需要把暴力破解的用的IP地址直接禁掉。

實戰背景:

最近公網網站一直被別人暴力破解sshd服務密碼。雖然沒有成功,但會導致系統負載很高,原因是在暴力破解的時候,系統會不斷地認證用戶,從而增加了系統資源額外開銷,導致訪問公司網站速度很慢。

fail2ban可以監視你的系統日志,然后匹配日志的錯誤信息(正則式匹配)執行相應的屏蔽動作(一般情況下是防火牆),而且可以發送e-mail通知系統管理員,很好、很實用、很強大!

簡單來說其功能就是防止暴力破解。工作的原理是通過分析一定時間內的相關服務日志,將滿足動作的相關IP利用iptables加入到dorp列表一定時間。 

 

1. fail2ban的安裝:

方法一、使用rpm升級,再通過yum進行安裝

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm   #Uvh升級該軟件包。

然后 yum install fail2ban 

 #因為yum安裝比較簡單,基本上就像傻瓜式安裝,這里不演示了。

 

方法二、源碼安裝

首先去官網下載最新版fail2ban :  http://www.fail2ban.org

下面是打開官網的樣子:

 

 選擇下載fail2ban,進入如下界面:

 

 

我這里為了直接從CentOS中下載(免去了用xshell或其它工具再拖放到虛擬機 的麻煩),將下載地址復制出來了:

 

然后,我直接在虛擬機中下載安裝:

 

 

 這里出現了一個問題:目前還沒有搞定,為什么我在線wget下載的fail2ban文件名單單只有0.8.14呢?

 

對於陌生的軟件,如果進行編譯安裝的話,通常都要先看它的readme文件,如何進行安裝。

解壓查看readme文件

[root@xiaolyu76 ~]# tar  -zxvf fail2ban-0.8.14.tar.gz

[root@xiaolyu76 fail2ban-0.8.14]# vim README.md #說明:下面的readme僅僅是我擇要摘取,原文太長了。 This README is a quick introduction to Fail2ban. More documentation, FAQ, HOWTOs are available in fail2ban(1) manpage and on the website http://www.fail2ban.org
 Installation: -------------

**It is possible that Fail2ban is already packaged for your distribution. In this case, you should use it instead.** Required: - [Python >= 2.4](http://www.python.org)
 Optional: - [pyinotify >= 0.8.3](https://github.com/seb-m/pyinotify)
  - Linux >= 2.6.13
- [gamin >= 0.0.21](http://www.gnome.org/~veillard/gamin)
 To install, just do: tar xvfj fail2ban-0.8.12.tar.bz2 cd fail2ban-0.8.12 python setup.py install This will install Fail2Ban into /usr/share/fail2ban. The executable scripts are placed into /usr/bin, and configuration under /etc/fail2ban.

 

需要安裝python開發環境,並且版本要大於2.4

查看當前系統中python的版本:

[root@xiaolyu76 ~]# python -V
Python 2.6.6
[root@xiaolyu76 ~]# cd fail2ban-0.8.14

 

[root@xiaolyu76 fail2ban-0.8.14]# ls setup.py
setup.py
[root@xiaolyu76 fail2ban-0.8.14]# python setup.py install

  

生成服務啟動腳本:

#下面是生成服務啟動腳本的程序: [root@xiaolyu76 fail2ban-0.8.14]# pwd 
/root/fail2ban-0.8.14 [root@xiaolyu76 fail2ban-0.8.14]# grep chkconfig ./* -R --color #查看服務啟動腳本是哪個文件,同時着色顯示。 ./files/redhat-initd:# chkconfig: - 92 08 [root@xiaolyu76 fail2ban-0.8.14]# cp files/redhat-initd /etc/init.d/fail2ban #將服務啟動腳本復制到存放開機啟動的服務的目錄下 [root@xiaolyu76 fail2ban-0.8.14]# chkconfig --add fail2ban #設置服務的開機啟動 [root@xiaolyu76 fail2ban-0.8.14]# service fail2ban start #service fail2ban start|stop|status|restart測試服務是否正常 Starting fail2ban: [ OK ] [root@xiaolyu76 fail2ban-0.8.14]# service fail2ban status fail2ban-server (pid 5874) is running... Status |- Number of jail: 0 `- Jail list: [root@xiaolyu76 fail2ban-0.8.14]# service fail2ban restart Stopping fail2ban: [ OK ] Starting fail2ban: [ OK ] [root@xiaolyu76 fail2ban-0.8.14]# service fail2ban stop Stopping fail2ban: [ OK ] [root@xiaolyu76 fail2ban-0.8.14]# 

 為什么要生成服務啟動腳本呢?生成服務啟動腳本,我可以設置開機自啟動,可以使用服務的相關命令service 服務名  start|stop|restart|status等等。非常方便。

 

拓展:

grep的用法

grep  ssh   /etc/passwd

2)echo -e  “this is a world \n nest line” |grep world

3)打印除包含 math_pattern 行之外的所有的行

grep -v match_pattern file

4)統計文件或文本中包含匹配字符串的行數:

grep -c “test” filename

5)忽略大小寫

echo “hello  world” |grep -I “HELLO”

 2、用tree /etc/fail2ban來查看fail2ban的文件目錄樹。

[root@xiaolyu76 ~]# tree /etc/fail2ban

 

 通過文件樹,可以看到在安裝fail2ban的過程中生成了很多文件,這里給出相關主要文件說明:

/etc/fail2ban/action.d            #動作文件夾,內含默認文件。iptables以及mail等動作配置

/etc/fail2ban/fail2ban.conf    #定義了fai2ban日志級別、日志位置及sock文件位置

/etc/fail2ban/filter.d              #條件文件夾,內含默認文件。過濾日志關鍵內容設置

/etc/fail2ban/jail.conf           #主要配置文件,模塊化。主要設置啟用ban動作的服務及動作閥值 ( jail   [dʒeɪl]  監獄)

/etc/rc.d/init.d/fail2ban        #啟動腳本文件

 

三、fail2ban如何防止暴力破解

實例:

設置條件:ssh遠程登錄5分鍾內3次密碼驗證失敗,禁止用戶IP訪問主機1小時,1小時該限制自動解除,用戶可重新登錄。

因為動作文件(action.d/iptables.conf)以及日志匹配條件文件(filter.d/sshd.conf )安裝后是默認存在的。基本不用做任何修改。所有主要需要設置的就只有jail.conf文件。啟用sshd服務的日志分析,指定動作閥值即可。實例文件/etc/fail2ban/jail.conf及說明如下:

fail2ban自身設置

 

1、fail2ban本身配置

[root@xiaolyu76 ~]# vim /etc/fail2ban/fail2ban.conf

默認fail2ban.conf里面就三個參數,而且都有注釋。
loglevel = 3                                            #默認日志的級別
logtarget = /var/log/fail2ban.log              #日志的存放路徑
socket = /var/run/fail2ban/fail2ban.sock   #socket的位置

2、jail.conf

vim /etc/fail2ban/jail.conf

 

[DEFAULT] # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not # ban a host which matches an address in this list. Several addresses can be # defined using space separator. ignoreip = 127.0.0.1/8 # External command that will take an tagged arguments to ignore, e.g. <ip>, # and return true if the IP is to be ignored. False otherwise. # # ignorecommand = /path/to/command <ip> ignorecommand = # "bantime" is the number of seconds that a host is banned. bantime = 600 # A host is banned if it has generated "maxretry" during the last "findtime" # seconds. findtime = 600 # "maxretry" is the number of failures before a host get banned. maxretry = 3 # "backend" specifies the backend used to get files modification. # Available options are "pyinotify", "gamin", "polling" and "auto". # This option can be overridden in each jail as well. # # pyinotify: requires pyinotify (a file alteration monitor) to be installed. # If pyinotify is not installed, Fail2ban will use auto. # gamin: requires Gamin (a file alteration monitor) to be installed. # If Gamin is not installed, Fail2ban will use auto. # # pyinotify: requires pyinotify (a file alteration monitor) to be installed. # If pyinotify is not installed, Fail2ban will use auto. # gamin: requires Gamin (a file alteration monitor) to be installed. # If Gamin is not installed, Fail2ban will use auto. # polling: uses a polling algorithm which does not require external libraries. # auto: will try to use the following backends, in order: # pyinotify, gamin, polling. backend = auto # "usedns" specifies if jails should trust hostnames in logs, # warn when DNS lookups are performed, or ignore all hostnames in logs # # yes: if a hostname is encountered, a DNS lookup will be performed. # warn: if a hostname is encountered, a DNS lookup will be performed, # but it will be logged as a warning. # no: if a hostname is encountered, will not be used for banning, # but it will be logged as info. usedns = warn # This jail corresponds to the standard configuration in Fail2ban. # The mail-whois action send a notification e-mail with a whois request # in the body.

[DEFAULT]               #全局設置

ignoreip = 127.0.0.1/8    10.10.10.0/24   #忽略的IP列表,不受設置限制  如果有二組以上用空白做為間隔

bantime  = 600             #屏蔽時間,單位:秒(設置IP被封鎖的時間)

findtime  = 600             #這個時間段內超過規定次數會被ban掉(設定多長時間內達到最大次數就解鎖。)

maxretry = 3                #最大嘗試次數

backend = auto            #日志修改檢測機制(gamin、polling和auto這三種)

 

 

[ssh-iptables] #enabled = false enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"] #logpath = /var/log/sshd.log logpath = /var/log/secure #maxretry = 5 maxretry = 3

 

[ssh-iptables]                   #單個服務檢查設置,如設置bantime、findtime、maxretry和全局沖突,服務優先級大於全局設置。

enabled  = true             #是否激活此項(true/false)修改成 true

filter       = sshd             #過濾規則filter的名字,對應filter.d目錄下的sshd.conf

action   = iptables[name=SSH, port=ssh, protocol=tcp]             #動作的相關參數,對應action.d/iptables.conf文件

sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"]  

#觸發報警的收件人

 dest=收件者電郵地址, sender=寄件者電郵地址

logpath  = /var/log/secure   #檢測的系統的登陸日志文件。這里要寫sshd服務日志文件。 默認為logpath  = /var/log/sshd.log

#5分鍾內3次密碼驗證失敗,禁止用戶IP訪問主機1小時。 配置如下

bantime  = 3600   #禁止用戶IP訪問主機1小時

findtime  = 300    #在5分鍾內內出現規定次數就開始工作

maxretry = 3    #3次密碼驗證失敗

  

注意:在做這個實驗之前要先做如下准備工作:

1. 將/etc/passwd文件中用戶mk和root的相關修改恢復過來。#因為用root用戶便於做實驗。

2. 將/etc/ssh/sshd_config文件中,將禁止root用戶登錄修改為允許。#說明生產上是要禁止root登錄,這里為了方便做實驗。

3. iptables防火牆需要配置。

    因為我在前面說了fail2ban的工作的原理就是通過分析一定時間內的相關服務日志,將滿足動作的相關IP利用iptables加入到dorp列表一定時間。 

所以首先要啟動防火牆iptables的相關配置:

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ROUTER-SSH  --update --seconds 1800 --hitcount 5 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ROUTER-SSH --set -j ACCEPT

 特別注意的是如果這個地方dport 端口設置為22,那么/etc/ssh/sshd_config中的Port端口也要設置為22.總之一句話,兩個設置端口要一致。

4. sshd服務器的端口,要和iptables 中dport端口要一致,我這里講兩個都設置為22了。

[root@xiaolyu76 ~]# iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ROUTER-SSH  --update --seconds 1800 --hitcount 5 -j DROP [root@xiaolyu76 ~]# iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ROUTER-SSH --set -j ACCEPT [root@xiaolyu76 ~]# service iptables -L #該命令如果返回防火牆規則,說明防火牆起作用了,否則不起作用。 Usage: iptables {start|stop|reload|restart|condrestart|status|panic|save} [root@xiaolyu76 ~]# 

 啟動服務:

[root@xiaolyu76 ~]# > /var/log/secure #清空該日志,從現在開始重新寫 [root@xiaolyu76 ~]# cat /var/log/secure [root@xiaolyu76 ~]# service fail2ban restart #重啟fail2ban Stopping fail2ban: [ OK ] Starting fail2ban: [ OK ] [root@xiaolyu76 ~]# iptables -L -n #生成關於fail2ban的規則鏈 Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-SSH tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain fail2ban-SSH (1 references) target prot opt source destination RETURN all -- 0.0.0.0/0 0.0.0.0/0 

 

 

測試:故意輸入錯誤密碼3次,再進行登錄時,會拒絕登錄

 

[root@xiaolyu77 ~]# ssh xiaolyu76 root@xiaolyu76's password: 
Permission denied, please try again. root@xiaolyu76's password: 
Permission denied, please try again. root@xiaolyu76's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). [root@xiaolyu77 ~]# ssh xiaolyu76 ssh: connect to host xiaolyu76 port 22: Connection refused

 

 

如何查看登錄被拒絕的相關信息呢?

1. 我們可以用iptables查看連接被屏蔽的情況:iptables -L 

[root@xiaolyu76 ~]# iptables -L |tail -4

2. 還可以通過fail2ban-client status來查看被屏蔽的情況:

說明: 如果fail2ban-client status ssh-iptables  顯示被ban的ip和數目就表示成功了,如果都是0,說明沒有成功

3. 也可以通過查看fail2ban的日志看到相關的信息

[root@xiaolyu76 ~]# tail /var/log/fail2ban.log

如何解除被禁止的IP ?

1. 直接重啟fail2ban服務即馬上解除所有IP 

  因為重新啟動fail2ban,iptables中的規則就會全部被清空。

2. 到了fail2ban規定時間之后自動解除

那如何查看發送的郵件呢?

 

四、ssh服務器免秘鑰登錄:

1. 在客戶端(我這里是xiaolyu77主機)執行ssh-keygen生成秘鑰對

[root@xiaolyu77 ~]# ssh-keygen

2. 將該秘鑰對復制到服務器上:

[root@xiaolyu77 .ssh]# ssh-copy-id  -i   /root/.ssh/id_rsa.pub  xiaolyu76

3. 現在,服務器xiaolyu76的主機上ssh服務的公鑰是客戶端xiaolyu77的主機上ssh服務的私鑰,那么可否在xiaolyu76(服務器端)來免密碼登錄

xiaolyu77(客戶端)呢?

可以看到,顯然不可以,這是為什么呢?因為xiaolyu76的私鑰和xiaolyu77的公鑰之間沒有任何關系。因為是私鑰加密,公鑰解密。

說通俗一點就是如果私鑰是鑰匙,那么公鑰就是鎖。xiaolyu76的私鑰和xiaolyu77的公鑰沒有什么關系,就是鑰匙打不開鎖,所以不能夠免密碼登錄。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM