Linux ssh安全遠程登錄

               Linux ssh安全遠程登錄

本章內容:

    構建SSH遠程登錄系統

    SSHsecure shell)是標準的網絡協議,主要用于實現字符界面的遠程登錄管理,及遠程文件復制功能。SSH協議對通過網絡傳輸的數據進行了加密處理,其中包括了用戶登錄時輸入的用戶口令。與早期的Telnet(遠程登錄)、rsh(遠程執行命令)、rcp(遠程文件復制)等應用相比,SSH協議提供了更好的安全性,SSH協議監聽的端口:tcp22

 

SSH協議支持兩種方式的用戶登錄認證:

   1)基于密碼驗證的SSH登錄體系

   2)基于密鑰對兒驗證的SSH登錄體系

 

openssh

client/server:客戶端/服務器

    client:客戶端軟件有ssh、scp、sftp

    server:服務器軟件有sshd

Windows上的遠程客戶端有:xshell   securecrt   putty  sshsecureshellclinet

 

ssh服務器:

   sshd服務器主配置文件:/etc/ssh/sshd_config

   常用參數:

       Port  ####    //監聽端口

       AddressFamily any   //監聽地址

       PasswordAuthentication yes |no  //是否允許密碼驗證登錄

       protocol           //協議

       LoginGraceTime 2m  //登錄等待超時時間

       PermitRootLogin yes |no  //是否允許root登錄

       MaxAuthTries 6     //嘗試錯誤密碼輸入次數(一半)

       MaxSessions 10     //每個網絡連接嘗試最大會話次數

       AuthorizedKeysFile   .ssh/authorized_keys //key驗證默認公鑰存放路徑

       ClientAliveInterval 0   //用戶連接上sshd服務多久不活動就斷開連接

       UseDNS yes |no  //是否使用DNS

       #no default banner path  //登錄sshd服務時的提示標語

       Banner /etc/ssh.txt       //登錄sshd服務時的提示標語

 

   限制可登錄用戶的辦法:

       AllowUsers  zheng  mage  //如果此處沒有添加root用戶,那么root也就拒絕

       DenyUsers  zhangsan   lisi  //拒絕登錄sshd服務的用戶,拒絕優先

       AllowGroup                //允許那些組內用戶登錄

       DenyGroup                //拒絕哪些組內用戶登錄

 

ssh服務的最佳實踐:

1、不要使用默認端口

2、禁止使用protocol  version 1

3、限制可登錄用戶

4、設定空閑會話超時時長

5、利用防火墻設置ssh訪問策略

6、僅監聽特定的IP地址

7、基于口令認證時,使用強密碼celv

  例:tr  -dc  A-Za-z0-9_   < /dev/urandom | head  -c 30 | xargs

8、使用基于密鑰的認證

9、禁止root用戶直接登錄

10、禁止使用空密碼

11、限制ssh的訪問頻率和并發在線數

12、做好日志,經常分析

 

ssh客戶端:

ssh客戶端主配置文件:/etc/ssh/ssh_config

命令行客戶端工具:

1)ssh遠程登錄:使用ssh命令遠程登錄服務器時,最典型的命令格式如下。

       ssh  username@sshserver  [command]

             或者簡寫為:

       ssh  ip address

 

       ssh支持的選項:

          -pport遠端服務器監聽的端口

          -b:指定連接的源ip

          -v:調試模式

          -c:壓縮方式

          -X:支持x11轉發

          -y:支持信任x11轉發 forward x11 trusted yes

          -t:強制偽tty分配

             ssh  -t   remoteserver1 ssh remoteserver2

          -l:直接以誰的身份登錄sshd服務器

             ssh   -l  zheng  192.168.3.2 (必須指定用戶名)

       

      命令格式中sshserver表示需要登錄到的SSH服務器的地址,可以是主機名或者IP地址,而username表示用于登錄的用戶賬號,該賬號應該是SSH服務器中的系統用戶賬號。用戶名與服務器地址之間使用“@”符號進行分隔。

 

      當客戶端第一次使用ssh客戶端命名連接sshd服務器時,在你輸入yes的時候,客戶機會自動復制sshd服務器/etc/ssh/ssh_host_rsa_key.pub中的公鑰到自己家目錄./.ssh/known_hosts文件中。下次再連接時,sshd服務器就會發一個私鑰簽名數據給ssh客戶端,如果ssh客戶端能解開則證明是原來連接過的sshd服務器,否則客戶端則會報警提示。(WARNING REMOTE  HOST IDENTIFICATION CHANGED!)遠程主機標識發生改變。

 

修改sshd服務器的監聽端口號:

[root@centos7 ssh]# vim /etc/ssh/sshd_config

blob.png 

[root@centos7 ssh]# systemctl reload sshd    //重新加載服務

 

如果selinux是開啟狀態,還需執行:

[root@centos7 ssh]# semanage port -a -t ssh_port_t -p tcp 2222

 

使用centos6客戶機測試:

[root@centos6 ssh]# ssh 192.168.3.11 -p 2222

 

若不想每次ssh連接時都輸入指定的端口號2222,我們這是就可以更改客戶端(centos6)的配置文件。

    [root@centos6 ssh]# vim /etc/ssh/ssh_config

blob.png 

客戶端改完配置文件無需重啟服務。

使用centos6客戶機測試:

[root@centos6 ssh]# ssh 192.168.3.11

 

 

基于key驗證遠程登錄openssh服務器:

 

   在客戶端創建密鑰對:

在客戶端使用ssh-keygen命令工具為當前用戶創建密鑰對文件,可以使用的加密算法為rsadsassh-keygen命令的-t選項用于指定算法類型),ssh-keygen命令執行完畢后將密鑰文件保存到用戶指定的位置,默認位于用戶宿主目錄下的.ssh/目錄下。其中id_rsa.pub是用戶的公鑰文件,可以提供給ssh服務器;id_rsa是用戶的私鑰文件,權限默認為600,私鑰文件用妥善保管,不能泄露給他人。用戶可以在創建密鑰對兒的過程中設置一個私鑰密碼短語或(ssh-keygen  -P  PASSWD)直接指定。

 

   1)在客戶端生成密鑰對兒;

    ssh-keygen  -t  rsa|dsa  -P  PASSWD

      或者寫成:

   2ssh-keygen   (私鑰保護密碼在創建的過程中填寫,默認為rsa加密算法)

 

   3)給私鑰保護密碼設置密碼代理;

         * 這樣口令就只需要輸入一次;

         * 需先執行ssh-agent bash 啟動密碼代理服務;

         * 在使用ssh-add命令把私鑰保護密碼托管給密碼代理服務;

         * 如果客戶機重啟還需重新設置私鑰保護密碼托管。

 

   上傳公鑰文件給服務器:

將客戶端用戶創建的公鑰文件發送給openssh服務器,并保存到服務器的授權密鑰庫中。服務器的授權密鑰庫文件位于各用戶宿主目錄下的.ssh/目錄,默認的文件名是authorized_keys

 

   1)拷貝公鑰文件到遠程服務器上;

         ssh-copy-id  -i  public_file絕對路徑) [user@]host

 

測試基于key驗證遠程登錄openssh服務器:

   實驗環境部署:

     1)在客戶端centos7服務器上使用ssh-keygen命令生成密鑰對。

     2)使用ssh-copy-id命令把生成的公鑰文件發送給openssh服務器。

     3)在客戶端centos7上使用ssh命令進行key驗證遠程登錄測試。

 

1、在客戶端centos7服務器上使用ssh-keygen命令生成密鑰對;

   blob.png

 

查看/root/.ssh目錄下生成的public/private文件

blob.png 

 

2、使用ssh-copy-id命令把生成的公鑰文件發送給openssh服務器;

 

blob.png 

 

centos6主機上查看/root/.ssh/目錄下是否多出了一個授權密鑰文件,authorized_keys

blob.png 

 

3、在客戶端centos7上使用ssh命令進行key驗證遠程登錄測試。

  blob.png

 

注意:在ssh連接centos6時需要輸入一下保護私鑰的密碼,如果這樣決定麻煩,我們也可以啟用ssh私鑰保護密碼托管。

    * 需執行ssh-agent bash 啟動密碼代理服務;

* 使用ssh-add命令把私鑰保護密碼托管給密碼代理服務;

* 如果客戶機重啟還需重新設置私鑰保護密碼托管。

blob.png blob.png

 

使用SecureCRT、Xshell實現基于key驗證:

 

  SecureCRT實現基于key驗證:

  SecureCRT工具—–>創建公鑰—–>生成Identity.pub文件,并復制到需要遠程登錄的openssh服務器上相應文件authorized_keys中,需注意新建的authorized_keys文件權限為600,并且要轉換Identity.pubopenssh服務器兼容的格式,需在openssh服務器上執行ssh-keygen  -i  -f  Identity.pub  >>  .ssh/authorized_keys.

 

  Xshell實現基于key驗證:

  xshell工具中——->新建用戶密鑰生成向導——–>生產密鑰參數——->密鑰類型:RSA|DSA———->密鑰長度:768|1024|2048|3072——–>下一步——–>生成公鑰對——->下一步———>用戶密鑰信息(密鑰名稱、輸入給用戶密鑰加密的密碼)——–>下一步———>公鑰注冊—–保存為文件(將公鑰文件保存桌面)——>完成。

復制到需要遠程登錄的openssh服務器上相應文件authorized_keys中,需注意新建的authorized_keys文件權限為600;然后就可以新建會話連接了,輸入主機IP,在用戶身份驗證中選擇publickey,輸入用戶名,選擇用戶密鑰,點擊完成。

 

 

scp命令:

 

scp  [options]  SRC  ……..DEST/

兩種方式:

scp  [options]  [user@]host:/sourcefile /desrpath

scp  [options]  /sourcefile  [user@]host:/destpat

 常用選項:

          -c:壓縮數據流;

          -r:遞歸復制;

          -p:保持原文件的屬性信息;

          -q:靜默模式;

          -Pport 指明 remote host的監聽的端口;

      注意:scp命令目標主機中存在的文件也會重新拷貝,效率較低。

   示例:

     [root@centos7 Desktop]# scp 192.168.3.7:/root/f1.sh  ./

     [root@centos7 Desktop]# scp ./linux-3.18.42.tar.xz  192.168.3.7:/root

 

rsync命令:

   rsync命令:基于sshrsh服務實現高效率的遠程系統之間復制文件;

   使用安全的shell連接作為傳輸方式;

   scp命令效率更快,只復制不同的文件;適用于更新網站;

   rsync  -av  /etc  server1:/tmp 把整個目錄復制過來

   rsync  -av  /etc/  server1:/tmp 只復制目錄下文件

   常用選項:

         -n:模擬復制過程

         -v:顯示詳細過程

         -r:遞歸復制目錄樹

         -p:保留權限

         -t:保留時間戳

         -g:保留組信息

         -o:保留所有者信息

         -l:把符號鏈接文件做為符號文件進行復制(默認)

         -L:將軟鏈接文件指向文件復制

         -a:存檔模式,相當于-riptgoD,但不保留ACL-A)和SELinux屬性(-x)。

   注意:rsync命令只復制目標服務器上不存在的文件,效率高。

 

  示例:

    [root@centos7 ~]# rsync ./f1.md5  192.168.3.7:/root

[root@centos7 ~]# rsync -rp 192.168.3.7:/etc  ./

 

xftp命令:

交互式文件傳輸工具;

用法和傳統的ftp工具相似;

sftp命令利用ssh服務實現安全的文件上傳和下載;

使用 ls  cd  mkdir  rmdir   pwd   get   put等指令;

 

 sftp  [user@]host

 

 示例:

       [root@centos7 ~]# sftp 192.168.3.7

 

ssh端口轉發:

   什么是SSH端口轉發?

SSH 會自動加密和解密所有SSH 客戶端與服務端之間的網絡數據。但是,SSH 還能夠將其他TCP 端口的網絡數據通過SSH 鏈接來轉發,并且自動提供了相應的加密及解密服務。這一過程也被叫做隧道tunneling),這是因為SSH 為其他TCP 鏈接提供了一個安全的通道來進行傳輸而得名。例如,Telnet,SMTPLDAP 這些TCP 應用均能夠從中得益,避免了用戶名,密碼以及隱私信息的明文傳輸。而與此同時,如果工作環境中的防火墻限制了一些網絡端口的使用,但是允許SSH 的連接,也能夠通過將TCP 端口轉發來使用SSH 進行通訊

    SSH 端口轉發能夠提供兩大功能:

    ?加密SSH Client 端至SSH Server 端之間的通訊數據。

?突破防火墻的限制完成一些之前無法建立連接的tcp連接。

 

本地轉

-L localport:host:hostportsshserver

sshL 9527:telnetsrv:23 -N sshsrv

telnet 127.0.0.1 9527

當訪問本機的9527的端口時,被加密后轉發到sshsrvssh服務,再解密被轉發到telnetsrv:23

datalocalhost:9527 localhost:XXXXXsshsrv:22 sshsrv:YYYYY telnetsrv:23

   .

      -f 后臺啟用

      -N 不開遠程shell

  -g 啟用網關功能

 

遠程轉發:

-R  sshserverporthosthostport    sshserver

   ssh   -R 9527telnetsrv23   -N  sshsrv

sshsrv偵聽9527端口的訪問,如有訪問,就加密后通過ssh服務轉發請求到本機ssh客戶端,再由本機解密后轉發到telnetsrv23

Data <—->sshsrv:9527<—–>sshsrv:22<—–>localhost:xxx<—–>localhost:yyyy<—>telnet:23

 

 示例:

  實驗環境:centos5使用ssh隧道Telnet  centos7主機。

      centos5 ip192.168.3.5

      centos6 ip192.168.3.6

      centos7 ip192.168.3.7

    1centos6 centos7在同一個局域網內,centos5為互聯網上的設備;

    2)局域網內的策略允許centos5訪問centos6

    3)使用ssh端口轉發實現centos5安全訪問centos7;

 [root@centos5~]#ssh  -L 9527:192.168.3.7:23  -N 192.168.3.6

 [root@centos5~]#telnet 127.0.0.1 9527 //這樣就可以telnetssh安全)連接centos7了。

 

動態端口轉發:

   當用firefox訪問internet時,本機的1080端口做為代理服務器,Firefox的訪問請求被轉發到sshserver上,由sshserver替之訪問Internet

   在本機firefox設置代理socket proxy127.0.0.1:1080

   #ssh   -D  1080 root@sshserver

 

X協議轉發:

  所有圖形化應用程序都是x客戶程序:

能夠通過tcp/ip連接遠程x服務器

數據沒有加密機,但是它通過ssh連接隧道安全進行

ssh  -X  user@remotehost   gedit

remotehost主機上的gedit工具,將會顯示在本機的x服務器上。

傳輸的數據將通過ssh連接加密。

 

AIDE:高級入侵檢測環境

當一個入侵者進入了你的系統并且種植了木馬,通常會想辦法隱藏這個木馬(除了木馬本身的一些隱藏特性外,他會盡量給你檢查系統的過程設置障礙),通常入侵者會修改一些文件,比如管理員通常使用ps  aux來查看系統進程,那么入侵者很可能用自己修改過的ps程序來替換掉你系統上的ps程序,以使用ps命令查不到正在運行的木馬程序。如果入侵者發現管理員正在運行crontab作業,也有可能替換掉crontab程序等。所以由此可見對于系統文件或是關鍵文件的檢查是很重要的,目前就系統完整性檢查的工具用的比較多的由兩款免費的但功能也很強大的工具。

 

AIDEadevanced  intrusion  detection  environment)高級入侵檢測環境,是一個入侵檢測工具,只要用途是檢查文件的完整性,審計計算機上的那些文件被更改過了。

AIDE能夠構造一個指定文件的數據庫,它使用aide.conf作為其配置文件。AIDE數據庫能夠保存文件的各種屬性,包括:權限(permission)、索引節點序號(inode number)、所屬用戶(user)、所屬用戶組(group)、文件大小、最后修改時間(mtime)、創建時間(ctime)、最后訪問時間(atime)、增加的大小以及連接數。AIDE還能夠使用下列算法:sha1、md5rmd160、tiger,以密文形式建立每個文件的校驗碼或散列號。

這個數據庫不應該保存那些經常變動的文件信息,例如:日志文件、郵件、/proc文件系統、用戶起始目錄以及臨時目錄。

 

安裝AIDE

   yum  -y  install   aide

 

初始化默認的AIDE的庫:

   /usr/local/bin/aide –init

 

生成檢查數據庫(建議初始數據庫存放到安全的地方)

   cd  /var/lib/aide

   mv   aide.db.new.gz    aide.db.gz

 

檢測:

  /usr/local/bin/aide  —check  

 

更新數據庫:

  aide   –update

 

AIDE的主配置文件:/etc/aide.conf

blob.png 

blob.png 

 

對要監控的目錄或文件初始信息生成數據庫文件;系統會默認把生成的aide.db.new.gz數據庫文件保存到/var/lib/aide目錄下:

blob.png 

 

如果要校驗的時候,需改名為:aide.db.gz

blob.png 

 

校驗aide監控的目錄和文件:

blob.png 

 

改變一下f1文件的大小:

blob.png 

 

在次使用aide  –check檢測監控的目錄和文件:

blob.png 

 

由此可見aide已經檢測到了f1文件哈希值發生了改變。

 

如果說現在想監控f3文件了,只需改/etc/aide.conf配置文件,把!/testdir/f1刪除。

blob.png 

 

使用aide  –update監控數據庫信息:

blob.png 

再次修改新生成的aide.db.new.gz監控數據庫文件為aide.db.gz;

blob.png 

 

su 切換用戶身份:

  在大多數的Linux服務器中,通常并不建議用戶直接使用root用戶登錄系統。這樣一方面盡可能地減少了以“超級用戶”身份發生誤操作的可能性,另一方面也降低了root密碼在不安全網絡中被泄露(或暴力破解)的風險。

su   -l  username  -c  command

 

sudo命令:

sudo命令提供了一種機制,只要預先在/etc/sudoers配置文件中進行授權,即可以允許特定的用戶以超級管理員(或其他普通用戶)的身份去執行命令,而該用戶不需要知道root用戶(或其他普通用戶)的密碼。

 

1sudo能夠授權指定用戶在指定主機上運行某些命令。如果未授權用戶嘗試使用sudo,會提示聯系管理員。

2sudo可以提供日志,記錄每個用戶使用sudo操作。

3sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用權限和使用主機。

4sudo使用時間戳文件來完成類似“檢票”的系統,默認存活期為5分鐘的“入場券”。

5、通過visudo命令編輯配置文件,具有語法檢查功能。

sudo的配置文件/etc/sudoers   或  /etc/sudoers.d/

/etc/sudoers文件的默認權限位440,通常使用專門的visudo命令進行編輯。如果直接使用vi命令編輯,則在保存文件的時候需要使用:wq!,否則系統將提示為只讀文件而拒絕保存。

 

sudo命令配置文件支持使用通配符glob

        ?:任意單一字符;

         *:匹配任意長度字符;

      [wxc]:匹配其中一個字符;

     [!wxc]:除了這三個字符的其它字符;

    \x:轉義;

   [[alpha]]:字母;示例:/bin/ls[[alpha]]

 

配置文件規則有兩類:

1)別名定義:不是必須的

2)授權規則:必須的

 

授權規則格式:

   用戶  登入主機=(代表用戶)   命令

 

示例:

root    ALL=(ALL)   ALL

 

格式說明:

user:運行命令者的身份;

host:通過哪些主機

  runas):以哪個用戶的身份;

command:運行哪些命令;

 

別名:

  userrunas

     #uid

     %group_name

     %#gid

     user_alias | runas_alias

 

host

   iphostname

   network/netmask

   host_ailas

 

command

   command  name

   directory

   sudoedit

   cmnd_alias

 

sudo別名:

   別名的四種類型:

   User_Alias   Runas_Alias    Host_Alias    Cmnd_Alias

 

   別名格式:

   [A-Z][A-Z][0-9]_* 別名必須是大寫字母且大寫字母開頭后可以跟數字。

  

   別名定義:

   Alias_Type  NAME1 = item1,item2,item3 : NAME2  =  item4, item5

   定義兩個相同的別名時可以使用“:”進行分隔開。

   

  示例1

     student   ALL=(ALL)  ALL

     %wheel   ALL=ALLALL

 

  示例2

student   ALL=root/sbin/pidof,/sbin/ifconfig

%wheel   ALL=(ALL)  nopasswdALL

 

  示例3

     User_Alias  NETADMIN = netuser1,netuser2

     Cmnd_Alias NETCMD = /usr/sbin/ip

     NETADMIN  ALL=rootNETCMD

 

  示例4

     User_Alias  SYSADER = zheng,mage,%admins

     User_Alias  DISKADER = tom

     Host_Alias  SERS = www.magedu.com,172.16.0.0/24

     Runas_Alias  OP = root

     Cmnd_Alias   SYDCMD = /bin/chown,/bin/chmod

     Cmnd_Alias   DSKCMD = /sbin/parted,/sbin/fdisk

     SYSADER  SERS = SYDCMD,DSKCMD

     DISKADER  ALL=(OP) DSKCMD

 

  示例5

User_Alias  ADMINUSER = adminuser1,adminuser2

Cmnd_Alias ADMINCMD = /usr/sbin/useradd,/usr/sbin/usermod,/usr/bin/passwd,!/usr/bin/passwd root

ADMINUSER  ALL=(root) NOPASSWD:ADMINCMD,PASSWD:/usr/sbin/userdel

 

  示例6

Defaultswang  runas_default=tom

wang  ALL = (tom,jerry) ALL

 

  示例7

wang  192.168.175.136,192.168.175.138=(root) /usr/sbin,!/usr/sbin/useradd

 

  示例8

wang  ALL=(ALL) /bin/cat  /var/log/message*

 

sudo [-u user]  command

      -i為了頻繁的執行某些只有超級用戶才能執行的權限,而不用每次輸入密碼,可以使用該命令。

      -V:顯示版本信息等配置信息;

      -uuser 默認為root

      -l:列出用戶在主機上可用的和被禁止的命令

      -v:在延長密碼有效期限5分鐘,更新時間戳  //認證時間戳目錄:/var/db/sudo

      -k:清除時間戳,下次需要重新輸入密碼  

      -K:與-k類似,還要刪除時間戳文件

      -b:在后臺執行指令

      -p:改變詢問密碼的提示符

         -p password on %h for user %p

 

示例1:授權zheng用戶以管理員權限:

 [root@centos7 Desktop]# visudo

blob.png 

切換到zheng用戶使用sudo  -l 查看:

blob.png 

 

示例2

  zheng   ALL=(root) NOPASSWD:/usr/bin/passwd,!/usr/bin/passwd root

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原創文章,作者:zhengyibo,如若轉載,請注明出處:http://www.www58058.com/50541

(0)
zhengyibozhengyibo
上一篇 2016-10-10 18:25
下一篇 2016-10-11 14:19

相關推薦

  • DNS原理詳解02

    9、子域授權     1、在父域的區域配置文件中增加以下記錄,即為增加了子域授權            opt.patrickli.com.         IN      NS     &…

    Linux干貨 2016-08-29
  • cut命令練習總結

    cut命令的作用是實現文本內容的切割,原內容或者原文件不受影響。   cut小練習:                       2016年 07月 …

    Linux干貨 2016-07-22
  • 使用Storm實現實時大數據分析

    摘要:隨著數據體積的越來越大,實時處理成為了許多機構需要面對的首要挑戰。Shruthi Kumar和Siddharth Patankar在Dr.Dobb’s上結合了汽車超速監視,為我們演示了使用Storm進行實時大數據分析。CSDN在此編譯、整理。 簡單和明了,Storm讓大數據分析變得輕松加愉快。 當今世界,公司的日常運營經常會生成TB級別的數據。數據來源…

    Linux干貨 2015-04-04
  • sed和awk的用例及pam安全措施-第十五周

    總結sed和awk的詳細用法; sed用法 sed(Stream EDitor)是一款流編輯器,用來對文本進行過濾與替換操作。其原理是:通過文件或管道讀取文件內容,但是sed默認并不直接修改源文件,而是一次僅讀取文件的一行至模式空間(pattern space)根據sed指令進行編輯并輸出結果后清除模式空間,即所有的操作都是在模式空間中進行的。 語法格式 s…

    2017-06-05
  • 隨筆—git的基本命令

    git是一個非常優秀的版本控制系統,可以對各類大小的項目進行源代碼管理,  #git的常用功能如下: 1、從服務器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。 2、在本地倉庫上根據不同的開發目的,創建分支,修改代碼。 3、在本機上向自己創建的分支上提交代碼。 4、在本機上合并分支。 5、將本地倉庫代碼和分支推送到服務器上的遠程倉庫 在官網…

    Linux干貨 2016-07-04
  • httpd配置

    httpd配置 修改監聽的IP和端口(port) 持久連接 MPM DSO(Dynamic Shared Object) main server的文檔頁面路徑 站點訪問控制 定義站點主頁面 定義路徑別名 設定默認字符集 日志 基于用戶的訪問控制 虛擬主機 httpd狀態頁面 使用壓縮模塊mod_daflate優化速度 基于IP 為每個虛擬主機至少準備一個IP…

    Linux干貨 2016-12-21
欧美性久久久久