這篇文章給大家分享的是有關(guān)Linux系統(tǒng)中SSH服務(wù)基于key認(rèn)證實(shí)踐的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括哈巴河網(wǎng)站建設(shè)、哈巴河網(wǎng)站制作、哈巴河網(wǎng)頁(yè)制作以及哈巴河網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,哈巴河網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到哈巴河省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
眾所周知ssh是目前較可靠,專(zhuān)為遠(yuǎn)程登錄會(huì)話(huà)和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議,它默認(rèn)工作在tcp的22號(hào)端口,具體實(shí)現(xiàn)的軟件有:openssh(centos默認(rèn)安裝的),dropbear。ssh協(xié)議目前有兩個(gè)版本v1和v2,v1基于CRC-32做MAC,不安全。v2基于DH算法做密鑰交換,基于RSA或DSA實(shí)現(xiàn)身份認(rèn)證。所以目前大多流行的Linux都是使用的V2版本。
簡(jiǎn)單了解了下ssh,我們?cè)賮?lái)說(shuō)說(shuō)它的兩種用戶(hù)登錄認(rèn)證方式,第一種基于用戶(hù)名口令的方式,這種認(rèn)證方式想必大家都應(yīng)該知道,就是我們要想登錄遠(yuǎn)端Linux系統(tǒng),我們必須要輸入相應(yīng)的用戶(hù)名口令才可以登錄到遠(yuǎn)程Linux系統(tǒng),這種方式是交互式方式登錄。第二種就是我們今天要說(shuō)的基于key的認(rèn)證方式。
首先我們來(lái)了解下ssh加密通訊的過(guò)程
從上圖可以看到,客戶(hù)端上必須存在一對(duì)密鑰對(duì),我們都知道密鑰是成對(duì)出現(xiàn),況且用A的公鑰加密只有A的私鑰才可以解密。正是因?yàn)榉菍?duì)稱(chēng)加密的這個(gè)特性,我們不難理解ssh通信也是利用這個(gè)特性來(lái)確定數(shù)據(jù)安全的。在服務(wù)端也有一對(duì)公鑰和私鑰,它存在的目的也是為了加密和解密數(shù)據(jù)。ssh加密通訊的流程大致上這樣的,客戶(hù)端要和服務(wù)端加密通信,首先客戶(hù)端需要拿到服務(wù)端的公鑰,拿到服務(wù)端的公鑰后,就可以用服務(wù)端的公鑰對(duì)要發(fā)送到數(shù)據(jù)加密,然后發(fā)送到服務(wù)端,服務(wù)端收到這個(gè)密文的數(shù)據(jù),它會(huì)用自己的私鑰去解密,從而實(shí)現(xiàn)了客戶(hù)端到服務(wù)端的數(shù)據(jù)加密。同理服務(wù)端要把數(shù)據(jù)發(fā)送給客戶(hù)端也是一樣的過(guò)程,拿到客戶(hù)端的公鑰用客戶(hù)端的公鑰加密,然后發(fā)給客戶(hù)端,客戶(hù)端用自己的私鑰解密,從而實(shí)現(xiàn)了你來(lái)我往的加密通訊。
我們想一下,服務(wù)端和客戶(hù)端通訊都是用對(duì)方的公鑰來(lái)加密數(shù)據(jù),那么客戶(hù)端是怎么拿到服務(wù)端的公鑰的呢?服務(wù)端又是怎么樣拿到客戶(hù)端的公鑰的呢?
來(lái)看一下服務(wù)端和客戶(hù)端在第一次連接的時(shí)候,公鑰交換的過(guò)程
首先客戶(hù)端向服務(wù)端發(fā)送ssh連接請(qǐng)求,服務(wù)端收到請(qǐng)求后,會(huì)把自己的公鑰和會(huì)話(huà)ID 一并發(fā)送給客戶(hù)端,客戶(hù)端收到服務(wù)器發(fā)來(lái)的公鑰后,它又把自己的公鑰和服務(wù)器發(fā)送過(guò)來(lái)的會(huì)話(huà)ID 做異或運(yùn)算,把得到的結(jié)果用服務(wù)端的公鑰來(lái)加密,然后把加密后的密文通過(guò)網(wǎng)絡(luò)發(fā)送給服務(wù)端,服務(wù)端收到客戶(hù)端發(fā)送過(guò)來(lái)的密文后,它會(huì)用自己的私鑰去解密,然后把得到的結(jié)果和之前的會(huì)話(huà)ID做異或計(jì)算,最終得到客戶(hù)端的公鑰。這樣的一個(gè)過(guò)程后,客戶(hù)端就擁有了服務(wù)端的公鑰,服務(wù)端也擁有了客戶(hù)端的公鑰,有了對(duì)方的公鑰后,后續(xù)就可以用對(duì)方的公鑰來(lái)加密數(shù)據(jù)。
使用過(guò)Linux的人都知道,在我們第一次和服務(wù)器建立ssh遠(yuǎn)程連接的時(shí)候,會(huì)有一個(gè)確認(rèn),問(wèn)我們是否繼續(xù)連接,我們輸入yes后才能輸入密碼,這是我為什么呢?其實(shí)在服務(wù)端發(fā)送自己的公鑰到客戶(hù)端的時(shí)候,因?yàn)榭蛻?hù)端沒(méi)有辦法確認(rèn)它收到的公鑰是不是對(duì)方服務(wù)器發(fā)送過(guò)來(lái)的,它就會(huì)把收到的公鑰做md5和sha256,提取出公鑰的指紋,然后提示我們說(shuō)我收到了一份md5為xxx的公鑰,請(qǐng)問(wèn)你確認(rèn)這個(gè)公鑰嗎?如果我們確認(rèn),就表示相信這個(gè)公鑰是服務(wù)器發(fā)送過(guò)來(lái)的,這樣一來(lái)才可以有下面的,把自己的公鑰和會(huì)話(huà)ID做異或運(yùn)算,把結(jié)果用剛才收到的公鑰加密。我們想象,如果不是服務(wù)器發(fā)過(guò)來(lái)的公鑰,而是黑客發(fā)送過(guò)來(lái)的公鑰,如果我們確認(rèn)了,后續(xù)的密文黑客拿到后,黑客就以用自己的私鑰來(lái)解密,得到客戶(hù)端的公鑰和數(shù)據(jù),然后他得到真正的數(shù)據(jù)后,黑客可以任意改動(dòng),然后再用服務(wù)器的公鑰加密,發(fā)送給服務(wù)端,這樣一來(lái)服務(wù)端得到的數(shù)據(jù)就是黑客修改后的數(shù)據(jù),不是真正客戶(hù)端發(fā)送的數(shù)據(jù)。這就是所謂的中間人攻擊,它是利用自己的公鑰來(lái)回冒充服務(wù)端和客戶(hù)端角色。
了解了ssh加密通訊的過(guò)程和密鑰交換的過(guò)程,我們?cè)賮?lái)看看,ssh基于用戶(hù)名口令和密鑰登錄驗(yàn)證的過(guò)程。
基于用戶(hù)名口令登錄是這樣的流程:首先客戶(hù)端發(fā)起ssh連接請(qǐng)求,服務(wù)端會(huì)把自己的公鑰發(fā)送給客戶(hù)端,客戶(hù)端收到服務(wù)端的公鑰后,把密碼經(jīng)過(guò)服務(wù)端的公鑰加密后發(fā)送給服務(wù)端,服務(wù)端收到加密后的密碼用自己的私鑰進(jìn)行解密,得到客戶(hù)端發(fā)送過(guò)來(lái)的密碼,然后它會(huì)拿這個(gè)密碼進(jìn)行驗(yàn)證,把驗(yàn)證的的結(jié)果用客戶(hù)端的公鑰加密并發(fā)送給客戶(hù)端,客戶(hù)端收到結(jié)果后,用自己的私鑰解密,從而實(shí)現(xiàn)了驗(yàn)證過(guò)程,如果驗(yàn)證通過(guò),那么客戶(hù)端就登錄成功,反之客戶(hù)端登錄失敗。
基于密鑰登錄驗(yàn)證的過(guò)程是:首先客戶(hù)端要生成一對(duì)密鑰對(duì)(這個(gè)密鑰對(duì)是針對(duì)的是用戶(hù),不是主機(jī)的公鑰私鑰,前面說(shuō)到的都是主機(jī)的公鑰和私鑰),并手動(dòng)的將生成的公鑰添加到服務(wù)器(默認(rèn)添加到服務(wù)器的某個(gè)用戶(hù)家目錄的.ssh/authorized_keys,我們要用那個(gè)用戶(hù)連接服務(wù)器,就把公鑰添加到那個(gè)用戶(hù)的家目錄的.ssh/authorized_keys文件中去),服務(wù)端有了客戶(hù)端用戶(hù)的公鑰后,在客戶(hù)端發(fā)起ssh連接請(qǐng)求的時(shí)候,服務(wù)端會(huì)生成一串隨機(jī)字符,用相應(yīng)的客戶(hù)端用戶(hù)的公鑰加密此隨機(jī)字符串,然后發(fā)送給客戶(hù)端,客戶(hù)端收到了服務(wù)端發(fā)送過(guò)來(lái)的加密的隨機(jī)字符后,客戶(hù)端就會(huì)用自己的私鑰來(lái)解密,然后把解密后的隨機(jī)字符發(fā)送給服務(wù)端,服務(wù)端收到客戶(hù)端發(fā)送過(guò)來(lái)的隨機(jī)字符后,它就會(huì)進(jìn)行對(duì)比,如果和之前發(fā)送的隨機(jī)字符相同,那么服務(wù)端就允許免密碼登錄。
通過(guò)上面的介紹,不難發(fā)現(xiàn)我們要基于key驗(yàn)證登錄,必須要在客戶(hù)端生成一對(duì)用戶(hù)密鑰對(duì),并且要將生成的用戶(hù)公鑰放在服務(wù)端的某一個(gè)用戶(hù)的家目錄的.ssh/authorized_keys文件中,這個(gè)用戶(hù)就是我們將來(lái)用于key驗(yàn)證登錄服務(wù)器的用戶(hù)。接下來(lái)我們來(lái)試驗(yàn)試驗(yàn)。
1、在客戶(hù)端生成用戶(hù)密鑰對(duì)
[qiuhom@docker ~]$ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/qiuhom/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/qiuhom/.ssh/id_rsa. Your public key has been saved in /home/qiuhom/.ssh/id_rsa.pub. The key fingerprint is: SHA256:CbICoBfN3670ucEBjhDR/ltyYoe/jJMIWCkCK5Lt5eA qiuhom@docker The key's randomart image is: +---[RSA 2048]----+ |. += | |+ o+ | |++oo..o. | |Bo=.o=.o.. | |+*.+o..oS | |. E.. B.=. | | . + %o. | | . =o+. | | ..+o | +----[SHA256]-----+ [qiuhom@docker ~]$ll .ssh/ 總用量 8 -rw------- 1 qiuhom qiuhom 1675 11月 2 16:54 id_rsa -rw-r--r-- 1 qiuhom qiuhom 395 11月 2 16:54 id_rsa.pub [qiuhom@docker ~]$
說(shuō)明:在Linux里我們用ssh-keygen命令來(lái)生成用戶(hù)密鑰對(duì),-t 選項(xiàng)表示以那種加密算法來(lái)生產(chǎn)密鑰。生成好的密鑰對(duì),默認(rèn)放在當(dāng)前用戶(hù)的家目錄下.ssh/目錄下,分別叫id_rsa 和id_rsa.pub,從名字上我們就可以知道id_rsa是私鑰id_rsa.pub是公鑰。心細(xì)的你一定看到,我們用ssh-keygen來(lái)生成密鑰,它會(huì)問(wèn)我們需要把密鑰文件存放在什么地方默認(rèn)是當(dāng)前用戶(hù)的家目錄下的.ssh目錄下,當(dāng)然我們也可以用-f選項(xiàng)來(lái)指定存放的位置,除此之外它還讓我們輸入密碼,這里的密碼表示加密私鑰的密碼,我們都知道拿到對(duì)方的私鑰是很危險(xiǎn),所以系統(tǒng)默認(rèn)會(huì)提示我們,如果按回車(chē)就表示生成的私鑰不加密,當(dāng)然我們也可以用 -P(大寫(xiě))選項(xiàng)來(lái)指定加密私鑰的密碼。
2.把用戶(hù)生成的公鑰放到服務(wù)器的用戶(hù)家目錄里的.ssh/authorized_keys,我們可以用scp命令放到服務(wù)端去,也可以通過(guò)U盤(pán)拷貝過(guò)去,但是這樣太麻煩。這里我們用專(zhuān)門(mén)的工具,ssh-copy-id來(lái)把用戶(hù)公鑰文件信息拷貝到服務(wù)端對(duì)應(yīng)的用戶(hù)家目錄
[qiuhom@docker ~]$ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.151 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub" The authenticity of host '192.168.0.151 (192.168.0.151)' can't be established. RSA key fingerprint is SHA256:GuKvtBmWnYyxogf1nyNvp02ccon/doAKhVdF7Qy7PvA. RSA key fingerprint is MD5:88:cf:f9:df:37:16:d7:e2:c4:99:a4:97:ab:49:f0:8e. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.0.151's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@192.168.0.151'" and check to make sure that only the key(s) you wanted were added. [qiuhom@docker ~]$
說(shuō)明:-i選項(xiàng)指定公鑰文件的存放位置,默認(rèn)是從當(dāng)前用戶(hù)的家目錄下的.ssh/公鑰文件名稱(chēng)。 因?yàn)槲覀兛截惞€之前,服務(wù)端是沒(méi)有客戶(hù)端用戶(hù)的公鑰,所以我們拷貝用戶(hù)公鑰的時(shí)候,還需要輸入密碼進(jìn)行驗(yàn)證。這里需要說(shuō)明一點(diǎn),我們上述實(shí)驗(yàn)服務(wù)端的sshd服務(wù)是默認(rèn)工作在22端口,如果沒(méi)有工作在默認(rèn)端口需要用-p(小寫(xiě))選項(xiàng)來(lái)指定端口。
到此我們就做好了ssh基于key免密碼登錄驗(yàn)證。
在上面的密鑰生成和發(fā)放都是基于人工去做的,這樣一臺(tái)兩臺(tái)服務(wù)器沒(méi)有什么問(wèn)題,但是服務(wù)器多了,怎么辦呢?如果我們需要管理很多臺(tái)服務(wù)器,我們這里就需要寫(xiě)腳本去完成了,以下提供本人寫(xiě)的腳本,實(shí)現(xiàn)的功能是自動(dòng)生成密鑰,并自動(dòng)發(fā)送到指定的主機(jī)。
[qiuhom@docker ~]$cat ssh_keygen.sh #!/bin/bash remote_host_ip=$1 remote_host_user=$2 remote_host_port=$3 remote_host_passwd=$4 local_rsa_file=~/.ssh/id_rsa local_rsa_pub_file=~/.ssh/id_rsa.pub [ $# -ne 4 ] && echo "Usage: sh $0 RemotehostIp RemotehostUser RemotehostPort RemotehostPasswd" && exit 5 [ ! -e ${local_rsa_file} ] && ssh-keygen -t rsa -P '' -f ${local_rsa_file} >/dev/null 2>&1 expect << EOF set timeout 10 spawn ssh-copy-id -i ${local_rsa_pub_file} $remote_host_user@$remote_host_ip -p $remote_host_port expect { "(yes/no)?" {send "yes\n";exp_continue} "password: " {send "$remote_host_passwd\n"} } expect eof EOF
說(shuō)明:本腳本需要自己傳遠(yuǎn)程服務(wù)器ip ,遠(yuǎn)程主機(jī)用戶(hù),遠(yuǎn)程主機(jī)ssh端口以及密碼,這個(gè)腳本實(shí)現(xiàn)了自動(dòng)生成密鑰,并發(fā)送給指定的服務(wù)器,若需要發(fā)送到更多的服務(wù)器上,可以另外寫(xiě)腳本調(diào)用此腳本,實(shí)現(xiàn)批量創(chuàng)建和分發(fā)密鑰文件的功能。
測(cè)試:
用腳本生成密鑰文件,并發(fā)送到指定服務(wù)器上去
[qiuhom@docker ~]$ll .ssh/ 總用量 0 [qiuhom@docker ~]$ssh root@192.168.0.151 The authenticity of host '192.168.0.151 (192.168.0.151)' can't be established. RSA key fingerprint is SHA256:GuKvtBmWnYyxogf1nyNvp02ccon/doAKhVdF7Qy7PvA. RSA key fingerprint is MD5:88:cf:f9:df:37:16:d7:e2:c4:99:a4:97:ab:49:f0:8e. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.151' (RSA) to the list of known hosts. root@192.168.0.151's password: [root@test ~]#ll .ssh/ 總用量 4 -rw------- 1 root root 0 11月 2 17:43 authorized_keys -rw-r--r-- 1 root root 1202 10月 31 21:25 known_hosts [root@test ~]#rm -rf .ssh/* [root@test ~]#ll .ssh/ 總用量 0 [root@test ~]#exit logout Connection to 192.168.0.151 closed. [qiuhom@docker ~]$rm -rf .ssh/* [qiuhom@docker ~]$sh ssh_keygen.sh 192.168.0.151 root 22 admin spawn ssh-copy-id -i /home/qiuhom/.ssh/id_rsa.pub root@192.168.0.151 -p 22 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/qiuhom/.ssh/id_rsa.pub" The authenticity of host '192.168.0.151 (192.168.0.151)' can't be established. RSA key fingerprint is SHA256:GuKvtBmWnYyxogf1nyNvp02ccon/doAKhVdF7Qy7PvA. RSA key fingerprint is MD5:88:cf:f9:df:37:16:d7:e2:c4:99:a4:97:ab:49:f0:8e. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.0.151's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh -p '22' 'root@192.168.0.151'" and check to make sure that only the key(s) you wanted were added. [qiuhom@docker ~]$ll .ssh/ 總用量 12 -rw------- 1 qiuhom qiuhom 1675 11月 2 17:53 id_rsa -rw-r--r-- 1 qiuhom qiuhom 395 11月 2 17:53 id_rsa.pub -rw-r--r-- 1 qiuhom qiuhom 395 11月 2 17:53 known_hosts [qiuhom@docker ~]$ssh root@192.168.0.151 [root@test ~]#ll .ssh/ 總用量 4 -rw------- 1 root root 395 11月 2 17:53 authorized_keys [root@test ~]#cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6yfNtYfGtwyZLKuffYgFoMZfEnKhpsp1pH3Mky1UGBsUNRGHIhNZzbtVNERWkAV/NndasfHss/vEnDSHVOXRScRfH7pPCNdVdy887WlSgshG6U5UIsQnlxlkUxf0ciVlc9VEw/IIg8eXrlOmcuezadxGc32yHB7o+zkEcg7UBYClDtjp5xqzrHyLDMd5OhGqMPJO+d+OFKqhOOYAUYsUi00aM1qNbf+KHFhYbQQj96UbWRTNQYFnqIJltvDPxqq7W5GGVl0xma6PSgGYMFNwIy9PhJJ8Lxaiaw3FjC8iCWrjzRONbnaqMPqrS8wQXs95vRDi2M0egKUuRlzFjGAGB qiuhom@docker [root@test ~]#exit logout Connection to 192.168.0.151 closed. [qiuhom@docker ~]$cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6yfNtYfGtwyZLKuffYgFoMZfEnKhpsp1pH3Mky1UGBsUNRGHIhNZzbtVNERWkAV/NndasfHss/vEnDSHVOXRScRfH7pPCNdVdy887WlSgshG6U5UIsQnlxlkUxf0ciVlc9VEw/IIg8eXrlOmcuezadxGc32yHB7o+zkEcg7UBYClDtjp5xqzrHyLDMd5OhGqMPJO+d+OFKqhOOYAUYsUi00aM1qNbf+KHFhYbQQj96UbWRTNQYFnqIJltvDPxqq7W5GGVl0xma6PSgGYMFNwIy9PhJJ8Lxaiaw3FjC8iCWrjzRONbnaqMPqrS8wQXs95vRDi2M0egKUuRlzFjGAGB qiuhom@docker [qiuhom@docker ~]$
說(shuō)明:可以看到我們腳本沒(méi)有運(yùn)行之前登錄服務(wù)器需要手動(dòng)輸入密碼,我們執(zhí)行了腳本后,用戶(hù)密鑰文件創(chuàng)建了,并且也將用戶(hù)公鑰文件發(fā)送到相應(yīng)的服務(wù)器上去了。
總結(jié):ssh基于key驗(yàn)證有如下好處
1、更加安全方便。我們不用去記繁瑣的用戶(hù)密碼,也不擔(dān)心密碼泄露。(我們可以把sshd服務(wù)配置成只允許基于KEY驗(yàn)證登錄)
2、基于key驗(yàn)證實(shí)現(xiàn)免密登錄,可以實(shí)現(xiàn)遠(yuǎn)程批量操作服務(wù)器,方便腳本編寫(xiě),使得我們?cè)趫?zhí)行遠(yuǎn)程操作命令時(shí)就好像在本地執(zhí)行命令簡(jiǎn)單(如scp,ssh)
3、有效防止暴力猜口令的威脅。
Linux是一種免費(fèi)使用和自由傳播的類(lèi)UNIX操作系統(tǒng),是一個(gè)基于POSIX的多用戶(hù)、多任務(wù)、支持多線(xiàn)程和多CPU的操作系統(tǒng),使用Linux能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。
感謝各位的閱讀!關(guān)于“Linux系統(tǒng)中SSH服務(wù)基于key認(rèn)證實(shí)踐的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
分享名稱(chēng):Linux系統(tǒng)中SSH服務(wù)基于key認(rèn)證實(shí)踐的示例分析
瀏覽路徑:http://jinyejixie.com/article36/iisepg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、App設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、建站公司、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)