ÇáËɽøÐÐ×ÔÖ÷µÄ¡¢°²È«µÄ¡¢·Ö²¼Ê½ÍøÂ籸·Ý
¼¶±ð: Öм¶
Carlos Justiniano £¨Carlos.Justiniano@ecuityinc.com£©
Èí¼þÉè¼Æʦ, Ecuity Inc.
2004 Äê 8 ÔÂ
ÖØÒªÊý¾ÝµÄ¶ªÊ§¿ÉÄÜÒâζ×ÅÖÂÃüµÄÆÆ»µ¡£¾¡¹ÜÈç´Ë£¬»¹ÊÇÓÐÎÞÊýרҵÈËÔ±ºöÊÓÁ˶ÔËûÃǵÄÊý¾ÝµÄ±¸·Ý¡£ËäÈ»ÔÒò¿ÉÄܸ÷²»Ïàͬ£¬µ«ÊÇ£¬×î³£¼ûµÄÒ»¸ö½âÊÍÊÇ£¬Ö´ÐÐÀýÐб¸·Ýȷʵ·³Ëö¡£ÓÉÓÚ»úÆ÷Éó¤ÓÚÍê³ÉÆÕͨ¶øÖظ´µÄÈÎÎñ£¬Òò´Ë£¬×Ô¶¯»¯±¸·ÝµÄ¹ý³ÌÊǽµµÍ¹¤×÷ÄÚÔڵĿÝÔïÐÔºÍÈËÃÇÓëÉú¾ãÀ´µÄÍÏÑÓÇãÏòµÄ¹Ø¼üËùÔÚ¡£
Èç¹ûÄúʹÓà Linux£¬ÄÇôÄú¾ÍÒѾ¿ÉÒÔʹÓÃÄÇЩ´´½¨¶¨ÖƱ¸·Ý½â¾ö·½°¸µÄ¼«ÆäÇ¿´óµÄ¹¤¾ß¡£±¾ÎÄÖеķ½°¸£¬¿ÉÒÔÈÃÄúʹÓü¸ºõÿ¸ö Linux ·¢Ðа汾¶¼¸½´øµÄ¿ª·ÅÔ´´úÂ빤¾ßÀ´Ö´ÐдӼòµ¥µÄµ½¸ü¸ß¼¶¶øÇÒ°²È«µÄÍøÂ籸·Ý¡£
¼òµ¥±¸·Ý
±¾ÎÄ°´ÕÕÒ»²½Ò»²½µÄ·½·¨À´½øÐн²Êö£¬Ö»ÒªÄú×ñÑÄÇЩ»ù±¾µÄ²½Ö裬´Ë·½·¨»áÊǷdz£Ö±¹ÛµÄ¡£
ÔÚÑо¿¸ü¸ß¼¶µÄ·Ö²¼Ê½±¸·Ý½â¾ö·½°¸Ö®Ç°£¬ÈÃÎÒÃÇÊ×ÏÈÀ´¿´Ò»¸ö¼òµ¥¶øÇ¿´óµÄ´æµµ»úÖÆ¡£ÈÃÎÒÃÇÀ´·ÖÎöÒ»¸öÃûΪ arc µÄ·½±ãµÄ½Å±¾£¬Ëü¿ÉÒÔÈÃÎÒÃÇÔÚ Linux shell Ìáʾ·ûÖд´½¨±¸·Ý¿ìÕÕ¡£
Çåµ¥ 1. arc shell ½Å±¾
CODE: [Copy to clipboard]
#!/bin/sh
tar czvf $1.$(date +%Y%m%d%-H%M%S).tgz $1
exit $?
arc ½Å±¾½ÓÊÕÒ»¸öµ¥¶ÀµÄÎļþ»òĿ¼Ãû×÷Ϊ²ÎÊý£¬´´½¨Ò»¸öѹËõµÄ´æµµÎļþ£¬Í¬Ê±½«µ±Ç°ÈÕÆÚǶÈëµ½Éú³ÉµÄ´æµµÎļþµÄÃû×ÖÖ®ÖС£ÀýÈ磬Èç¹ûÄúÓÐÒ»¸öÃûΪ beoserver µÄĿ¼£¬Äú¿ÉÒÔµ÷Óà arc ½Å±¾£¬½« beoserver Ŀ¼Ãû´«µÝ¸øËüÒÔ´´½¨Ò»¸öѹËõµÄ´æµµÎļþ£¬È磺 beoserver.20040321-014844.tgz
ʹÓà date ÃüÁîÊÇΪÁËǶÈëÒ»¸öÈÕÆÚºÍʱ¼ä´ÁÒÔ°ïÖúÄú×éÖ¯´æµµÎļþ¡£ÈÕÆڵĸñʽÊÇÄê¡¢Ô¡¢ÈÕ¡¢Ð¡Ê±¡¢·Ö¡¢Ãë ---- ËäÈ»ÃëÓòµÄʹÓÃÓÐһЩ¶àÓà¡£²é¿´ data ÃüÁîµÄÊֲᣨ man date£©À´Á˽âÆäËûÑ¡Ïî¡£ÁíÍ⣬ÔÚÇåµ¥ 1 ÖУ¬ÎÒÃÇÏò tar ´«µÝÁË -v£¨verbose£©Ñ¡Ïî¡£Õâ¾ÍʹµÃ tar ÏÔʾ³öËüÕýÔÚ´æµµµÄÎļþ¡£Èç¹ûÄúϲ»¶¾²Ä¬µØ½øÐб¸·Ý£¬ÄÇôɾ³ýÕâ¸ö -v Ñ¡Ïî¡£
Çåµ¥ 2. ´æµµ beoserver Ŀ¼
CODE: [Copy to clipboard]
$ ls
arc beoserver
$ ./arc beoserver
beoserver/
beoserver/bookl.dat
beoserver/beoserver_ab_off
beoserver/beoserver_ab_on
$ ls
arc beoserver beoserver.20040321-014844.tgz
¸ß¼¶±¸·Ý
Õâ¸ö¼òµ¥±¸·ÝÊÇʵÓõģ»²»¹ý£¬ËüÈÔÈ»°üº¬Ò»¸öÈ˹¤±¸·ÝµÄ¹ý³Ì¡£ÐÐÒµ×î¼Ñ¾Ñéͨ³£½¨Ò齫Êý¾Ý±¸·Ýµ½¶à¸öýÌåÉÏ£¬²¢±¸·Ýµ½·Ö¿ªµÄ²»Í¬µØÀíλÖá£ÖÐÐÄ˼ÏëÊDZÜÃâÒÀÀµÓÚÈκÎÒ»¸öµ¥¶ÀµÄ´æ´¢Ã½Ìå»òµ¥¶ÀµÄλÖá£
ÔÚÏÂÒ»¸öÀý×ÓÖÐÎÒÃǽ«Ó¦¶ÔÕâÒ»ÌôÕ½£¬ÎÒÃǽ«·ÖÎöÒ»¸öÈçͼ 1 ËùʾµÄ¼ÙÏëµÄ·Ö²¼Ê½ÍøÂ磬ËüչʾÁ˶ÔÁ½Ì¨Ô¶³Ì·þÎñÆ÷ºÍһ̨ÀëÏß´æ´¢·þÎñÆ÷µÄϵͳ¹ÜÀí¡£
ͼ 1. ·Ö²¼Ê½ÍøÂç
·þÎñÆ÷ #1 ºÍ #2 Éϵı¸·ÝÎļþ½«°²È«µØ´«Êäµ½ÀëÏß´æ´¢·þÎñÆ÷ÉÏ£¬¶øÇÒÕû¸ö·Ö²¼Ê½±¸·Ý¹ý³Ì½«ÔÚûÓÐÈ˹¤¸ÉÉæµÄÇé¿ö϶¨ÆÚ½øÐС£ÎÒÃǽ«Ê¹ÓÃÒ»×é±ê×¼µÄ¹¤¾ß£¨¿ª·Å°²È« shell ¹¤¾ßÌ×¼þ£¨OpenSSH£©µÄÒ»²¿·Ö£©£¬ÒÔ¼°´Å´ø´æµµÆ÷£¨tar£©ºÍ cron ÈÎÎñµ÷¶È·þÎñ¡£ÎÒÃǵÄÈ«²¿¼Æ»®ÊÇ£¬Ê¹Óà cron ½øÐе÷¶È£¬Ê¹Óà shell ³ÌÐòºÍ tar Ó¦ÓóÌÐòÍê³É±¸·Ý¹ý³Ì£¬Ê¹Óà OpenSSH °²È« shell£¨ssh£©¼ÓÃܽøÐÐÔ¶³Ì·ÃÎÊ¡¢ÈÏÖ¤¡¢°²È« shell ¿½±´£¨scp£©ÒÔ×Ô¶¯Íê³ÉÎļþ´«Êä¡£Òª»ñµÃÁíÍâµÄ×ÊÁÏÇëÎñ±Ø²é¿´Ã¿¸ö¹¤¾ßµÄÊֲᡣ
ʹÓù«Ô¿/˽Կ½øÐа²È«µÄÔ¶³Ì·ÃÎÊ
ÔÚÊý×Ö°²È«µÄÉÏÏÂÎÄÖУ¬ÃÜÔ¿£¨key£©Ö¸µÄÊÇÓÃÀ´¼ÓÃÜ»ò½âÃÜÆäËûÊý¾ÝƬ¶ÏµÄÒ»¸öÊý¾ÝƬ¶Ï¡£¹«Ô¿Ë½Ô¿Ä£Ê½µÄÓÐȤ֮´¦ÔÚÓÚ£¬Ê¹Óù«Ô¿¼ÓÃܵÄÊý¾Ý£¬Ö»ÓÐÓÃÏàÓ¦µÄ˽Կ²Å¿ÉÒÔ½âÃÜ¡£Äú¿ÉÒÔ×ÔÓɵط¢²¼Ò»¸ö¹«Ô¿£¬ÕâÑù±ðÈ˾ͿÉÒÔ¶Ô·¢Ë͸øÄúµÄÏûÏ¢½øÐмÓÃÜ¡£¹«Ô¿/˽Կģʽ³¹µ×¸Ä±äÁËÊý×Ö°²È«µÄÔÒòÖ®Ò»ÊÇ£¬·¢ËÍÕߺͽÓÊÕÕß²»±ØÔÙ¹²ÏíÒ»¸öͨÓõÄÃÜÂë¡£³ýÁËÆäËû·½ÃæµÄ¹±Ï×£¬¹«Ô¿/˽Կ¼ÓÃÜʹÓõç×ÓÉÌÎñºÍÆäËû°²È«´«Êä³ÉΪ¿ÉÄÜ¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«´´½¨²¢Ê¹Óù«Ô¿ºÍ˽ԿÀ´´´½¨Ò»¸ö·Ç³£°²È«µÄ·Ö²¼Ê½±¸·Ý½â¾ö·½°¸¡£
Òª½øÐб¸·Ý¹ý³ÌµÄÿ̨»úÆ÷¶¼±ØÐëÔËÐÐ OpenSSH °²È« shell ·þÎñ£¨sshd£©£¬Í¬Ê±Èà 22 ¶Ë¿Ú¿ÉÒÔͨ¹ýÈκÎÄÚ²¿·À»ðǽ±»·ÃÎÊ¡£Èç¹ûÄú·ÃÎÊÔ¶³ÌµÄ·þÎñÆ÷£¬ÄÇôºÜÓпÉÄÜÄúÕýÔÚʹÓð²È« shell¡£
ÎÒÃǵÄÄ¿±ê½«ÊÇ£¬²»ÐèÒªÈ˹¤ÌṩÃÜÂë¾Í¿ÉÒÔ°²È«µØ·ÃÎÊ»úÆ÷¡£Ò»Ð©ÈËÈÏΪ×î¼òµ¥µÄ°ì·¨ÊÇÉèÖÃÎÞÃÜÂëµÄ·ÃÎÊ£º²»ÒªÕâÑù×ö¡£ÕâÑù×ö²»°²È«¡£²»ÓÃÄÇÑù£¬±¾ÎÄÖÐÎÒÃǽ«Ê¹Óõķ½·¨¿ÉÄÜ»áÕ¼ÓÃÄú´óÔ¼Ò»¸öСʱµÄʱ¼ä£¬½¨Á¢ÆðÒ»¸öÓëʹÓá°ÎÞÃÜÂ롱ÕʺÅͬÑù·½±ãµÄϵͳ ---- ²»¹ýËüÊǹ«ÈϷdz£°²È«µÄ¡£
ÈÃÎÒÃÇÊ×ÏÈÈ·±£ OpenSSH ÒѾ°²×°£¬½ÓÏÂÀ´²é¿´ËüµÄ°æ±¾ºÅ¡£Íê³É±¾ÎÄʱ£¬×îеķ¢ÐÐµÄ OpenSSH ÊÇ 2004 Äê 2 Ô 24 ÈÕ·¢²¼µÄ°æ±¾ 3.8¡£ÄúÓ¦¸Ã¿¼ÂÇʹÓÃÒ»¸ö½ÏеĶøÇÒÎȶ¨µÄ·¢²¼°æ±¾£¬ÖÁÉÙËùÓõİ汾Ӧ¸ÃÒª±È°æ±¾ 2.x С£·ÃÎÊ OpenSSH Security ÍøÒ³ÒÔ»ñµÃ¹ØÓÚÌض¨¾É°æ±¾µÄȱÏݵÄϸ½Ú£¨Çë²ÎÔı¾ÎĺóÃæµÄ ²Î¿¼×ÊÁÏ ÖеÄÁ´½Ó£©¡£µ½Ä¿Ç°ÎªÖ¹£¬OpenSSH ÊǷdz£Îȶ¨µÄ£¬¶øÇÒÒѾ֤Ã÷²»´æÔÚÆäËû SSH ¹¤¾ßËù±¨¸æµÄºÜ¶àȱÏÝ¡£
ÔÚ shell Ìáʾ·ûÖУ¬ÊäÈë ssh ²¢¸ø³öÖØÒªµÄ V Ñ¡ÏîÀ´¼ì²é°æ±¾ºÅ£º
$ ssh -V
OpenSSH_3.5p1, SSH protocols 1.5/2.0, OpenSSL 0x0090701f
Èç¹û ssh ·µ»ØµÄ°æ±¾ºÅ´óÓÚ 2.x£¬Ôò»úÆ÷´¦ÓÚÏà¶ÔÁ¼ºÃµÄ״̬¡£ÎÞÂÛÈçºÎ£¬½¨ÒéÄúËùÓеÄÈí¼þ¶¼Ê¹ÓÃ×îеÄÎȶ¨°æ±¾£¬Õâ¶ÔÓÚ°²È«Ïà¹ØµÄÈí¼þÀ´ËµÓÈÆäÖØÒª¡£
ÎÒÃǵĵÚÒ»¸ö²½ÖèÊÇ£¬Ê¹Óý«»áÓÐÌØȨ·ÃÎÊ·þÎñÆ÷ 1 ºÍ 2 µÄÕʺŵǼµ½ÀëÏß´æ´¢·þÎñÆ÷»úÆ÷£¨¼ûͼ 1£©¡£
$ ssh accountname@somedomain.com
µÇ¼µ½ÀëÏß´æ´¢·þÎñÆ÷ÒÔºó£¬Ê¹Óà ssh-keygen ³ÌÐò²¢¸ø³ö -t dsa Ñ¡ÏîÀ´´´½¨Ò»¸ö¹«Ô¿/ÃÜÔ¿¶Ô¡£ -t Ñ¡ÏîÊDZØÐëµÄ£¬ÓÃÀ´Ö¸¶¨ÎÒÃÇÒªÉú³ÉµÄÃÜÔ¿ÀàÐÍ¡£ÎÒÃǽ«Ê¹ÓÃÊý×ÖÇ©ÃûËã·¨£¨Digital Signature Algorithm£¬DSA£©£¬ËüÈÃÎÒÃÇ¿ÉÒÔʹÓøüÐ嵀 SSH2 ÐÒé¡£²ÎÔÄ ssh-keygen ÊÖ²áÒÔ»ñµÃ¸ü¶àϸ½Ú¡£
ÔÚ ssh-keygen Ö´ÐеĹý³ÌÖУ¬ÔÚѯÎÊÄú¿ÚÁpassphrase£©Ö®Ç°£¬½«ÌáʾÄúÊäÈë ssh ÃÜÔ¿´æ´¢µÄλÖᣵ±Ñ¯ÎÊÔںδ¦´æ´¢ÃÜԿʱֻÐèÒª°´Ï»سµ¼ü£¬È»ºó ssh-keygen ³ÌÐò½«´´½¨Ò»¸öÃûΪ .ssh µÄÒþ²ØĿ¼£¨Èç¹ûÔÀ´²»´æÔÚ£©£¬ÒÔ¼°Á½¸öÎļþ£¬Ò»¸ö¹«Ô¿ÎļþºÍÒ»¸ö˽ԿÎļþ¡£
ssh-keygen µÄÒ»¸öÓÐȤÌØÐÔÊÇ£¬µ±ÌáʾÊäÈëÒ»¸ö¿ÚÁîʱ£¬ËüÈÃÄú¿ÉÒÔÖ»ÊǼòµ¥µØ°´Ï»سµ¼ü¡£Èç¹ûÄúûÓиø³ö¿ÚÁÄÇô ssh-keygen ½«Éú³ÉûÓмÓÃܵÄÃÜÔ¿!ÈçÄúËùÏ룬Õâ²»ÊǸöºÃÖ÷Òâ¡£µ±ÒªÇóÊäÈë¿ÚÁîʱ£¬È·±£ÊäÈëÒ»¸ö×ã¹»³¤µÄ×Ö·ûÏûÏ¢£¬×îºÃ°üº¬»ìºÏ×Ö·û¶ø²»½ö½öÊÇÒ»¸ö¼òµ¥µÄÃÜÂë×Ö·û´®¡£
Çåµ¥ 3. ÓÀԶѡÔñºÃµÄ¿ÚÁî
CODE: [Copy to clipboard]
[offsite]:$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/accountname/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): (enter passphrase)
Enter same passphrase again: (enter passphrase)
Your identification has been saved in /home/accountname/.ssh/id_dsa.
Your public key has been saved in /home/accountname/.ssh/id_dsa.pub.
The key fingerprint is:
7e:5e:b2:f2:d4:54:58:6a:fa:6b:52:9c:da:a8:53:1b accountname@offsite
ÓÉÓÚ ssh-keygen Éú³ÉµÄ .ssh Ŀ¼ÊÇÒ»¸öÒþ²ØµÄ¡°dot¡±Ä¿Â¼£¬ËùÒÔÒª¸ø ls ÃüÁî´«ÈëÒ»¸ö -a Ñ¡ÏîÀ´²é¿´Ð´´½¨µÄĿ¼£º
[offsite]$ ls -a
. .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .ssh
½øÈëÒþ²ØµÄ .ssh Ŀ¼²¢ÁгöÆäÄÚÈÝ£º
[offsite]$ cd .ssh
[offsite]$ ls -lrt
id_dsa id_dsa.pub
ÏÖÔÚ£¬ÔÚÒþ²ØµÄ .ssh Ŀ¼ÖУ¬ÎÒÃÇÒѾӵÓÐÁËÒ»¸ö˽Կ£¨id_dsa£©ºÍÒ»¸ö¹«Ô¿£¨id_dsa.pub£©¡£Äú¿ÉÒÔʹÓà vi »ò emacs µÈÎı¾±à¼¹¤¾ß»òÕß¼òµ¥µØʹÓà less »ò cat ÃüÁîÀ´·ÖÎöÿ¸öÃÜÔ¿ÎļþµÄÄÚÈÝ¡£Äú½«¿´µ½ÓÉ»ìºÏ×Ö·û¹¹³ÉµÄÄÚÈÝÒѾ¾¹ýÁË base64 ±àÂë¡£
È»ºó£¬ÎÒÃÇÐèÒª½«¹«Ô¿¿½±´²¢°²×°µ½·þÎñÆ÷ 1 ºÍ 2 ÉÏ¡£²»ÒªÊ¹Óà ftp¡£¸üºÏÀíµÄÊÇ£¬Ê¹Óð²È«¿½±´³ÌÐòÀ´½«¹«Ô¿´«Ë͵½Ã¿Ò»Ì¨Ô¶³Ì»úÆ÷ÉÏ¡£
Çåµ¥ 4. ½«¹«Ô¿°²×°µ½Ô¶³Ì·þÎñÆ÷ÉÏ
CODE: [Copy to clipboard]
[offsite]$ scp .ssh/id_dsa.pub accountname@server1.com:offsite.pub
accountname@server1.com's password: (enter password, not new
passphrase!)
id_dsa.pub 100% |*****************************| 614 00:00
[offsite]$ scp .ssh/id_dsa.pub accountname@server2.com:offsite.pub
accountname@server2.com's password: (enter password, not new
passphrase!)
id_dsa.pub 100% |*****************************| 614 00:00
ÔÚ°²×°ÍêÐµĹ«Ô¿ºó£¬ÎÒÃǾͿÉÒÔʹÓô´½¨Ë½Ô¿ºÍ¹«Ô¿Ê±Ö¸¶¨µÄ¿ÚÁîÀ´µÇ¼µ½Ã¿Ò»Ì¨»úÆ÷¡£ÏÖÔÚ£¬µÇ¼µ½Ã¿Ì¨»úÆ÷£¬²¢½« offsite.pub ÎļþµÄÄÚÈݸ½¼Óµ½Ò»¸öÃûΪ authorized_keys µÄÎļþÖУ¬Õâ¸öÎļþ´æ´¢ÔÚÿ̨Զ³Ì»úÆ÷µÄ .ssh Ŀ¼Ï¡£ÎÒÃÇ¿ÉÒÔʹÓÃÒ»¸öÎı¾±à¼Æ÷»òÕß¼òµ¥µØʹÓà cat ÃüÁîÀ´½« offsite.pub ÎļþµÄÄÚÈݸ½¼Óµ½ authorized_keys Îļþ£º
Çåµ¥ 5. ½« offsite.pub Ìí¼Óµ½ÒÑÊÚȨÃÜÔ¿Áбí
CODE: [Copy to clipboard]
[offsite]$ ssh accountname@server1.com
accountname@server1.com's password: (enter password, not new
passphrase!)
[server1]$ cat offsite.pub >> ./ssh/authorized_keys
½ÓÏÂÀ´µÄ²½ÖèÊÇ¿¼ÂÇһЩ¶îÍâµÄ°²È«ÐÔ¡£Ê×ÏÈ£¬ÎÒÃÇÐÞ¸Ä .ssh µÄ·ÃÎÊȨÏÞ£¬ÒÔʹµÃÖ»ÓÐËùÓÐÕßÓжÁ¡¢Ð´ºÍÖ´ÐеÄȨÏÞ¡£È»ºó£¬ÎÒÃÇÈ·±£ authorized_keys ÎļþÖ»ÄÜÓÉËùÓÐÕßÀ´·ÃÎÊ¡£×îºó£¬½«ÏÈÇ°ÉÏ´«µÄ offsite.pub ÃÜÔ¿Îļþɾ³ý£¬ÒòΪÔÙÒ²²»ÐèÒªËüÁË¡£È·±£ÉèÖÃÊʵ±µÄ·ÃÎÊȨÏÞºÜÖØÒª£¬ÒòΪ OpenSSH ·þÎñÆ÷¿ÉÄÜ»á¾Ü¾øʹÓþßÓв»°²È«·ÃÎÊȨÏÞµÄÃÜÔ¿¡£
Çåµ¥ 6. ʹÓà chmod ÐÞ¸ÄȨÏÞ
CODE: [Copy to clipboard]
[server1]$ chmod 700 .ssh
[server1]$ chmod 600 ./ssh/authorized_keys
[server1]$ rm offsite.pub
[server1]$ exit
ÔÚ·þÎñÆ÷ 2 ÉÏÍê³ÉͬÑùµÄ²½Öèºó£¬ÎÒÃǾͿÉÒÔ·µ»Øµ½ÀëÏß´æ´¢»úÆ÷ÉÏÀ´²âÊÔеĿÚÁîÀàÐ͵ķÃÎÊ¡£ÔÚÀëÏß·þÎñÆ÷ÉÏÄú¿ÉÒÔÊäÈëÏÂÃæµÄÄÚÈÝ£º
[offsite]$ ssh -v accountname@server1.com
ÔÚ¼ìÑéÄúµÄÕʺÅÏÖÔÚ¿ÉÒÔʹÓÃеĿÚÁî¶ø²»ÊÇÔÀ´µÄÃÜÂëÀ´·ÃÎÊÔ¶³ÌµÄ·þÎñÆ÷ʱ£¬Ê¹Óà -v »ò verbose ±ê¼ÇÑ¡ÏîÀ´ÏÔʾµ÷ÊÔÐÅÏ¢¡£µ÷ÊÔÊä³ö³ýÁËÄÜÈÃÄúÔÚÒ»¸ö¸ßµÄ²ãÃæÉϹ۲쵽ÈÏÖ¤¹ý³ÌÊÇÈçºÎ¹¤×÷µÄÖ®Í⣬»¹¿ÉÒÔÏÔʾ³öÄú¿ÉÒÔÒÔÆäËû·½Ê½ÎÞ·¨µÃµ½µÄÖØÒªÐÅÏ¢¡£ÔÚÒÔºóµÄÁ¬½ÓÖÐÄú¿ÉÄܲ¢²»ÐèÒªÖ¸¶¨ -v ±ê¼Ç£»µ«ÊÇÔÚ²âÊÔÁ¬½ÓʱËüÏ൱ÓÐÓá£
ʹÓà ssh-agent ×Ô¶¯»¯»úÆ÷·ÃÎÊ
ssh-agent ³ÌÐòÈçͬһ¸ö¿´ÃÅÈË£¬Ëü¸ù¾ÝÐèÒª°²È«µØÌṩ¶Ô°²È«ÃÜÔ¿µÄ·ÃÎÊ¡£ssh-agent Æô¶¯ºó£¬Ëü¾Í»áÔÚºǫ́ÔËÐУ¬²¢ÇÒ¿ÉÒÔÓÉ ssh ºÍ scp ³ÌÐòµÈÆäËû OpenSSH Ó¦ÓóÌÐòËùʹÓá£Õâ¾ÍʹµÃ ssh ³ÌÐò¿ÉÒÔÇëÇóÒ»¸öÒѾ½âÃÜÁ˵ÄÃÜÔ¿£¬¶ø²»ÊÇÔÚÿ´ÎÐèҪʱÏòÄúѯÎÊ˽ԿµÄ°²È«¿ÚÁî¡£
ÈÃÎÒÃÇÀ´×ÐϸÑо¿Ò»Ï ssh -agent¡£ssh-agent ÔËÐÐʱËü»áÊä³ö shell ÃüÁ
Çåµ¥ 7. ssh-agent Ó¦ÓÃ
CODE: [Copy to clipboard]
[ [offsite]$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-XX1O24LS/agent.14179; export SSH_AUTH_SOCK;
SSH_AGENT_PID=14180; export SSH_AGENT_PID;
echo Agent pid 14180;/code]
ÎÒÃÇ¿ÉÒÔʹÓà shell µÄ eval ÃüÁîÀ´Èà shell Ö´ÐÐ ssh-agent ÏÔʾµÄÊä³öÃüÁ
[offsite]$ eval `ssh-agent`
Agent pid 14198
eval ÃüÁî¸æËß shell È¥ÆÀ¼Û£¨Ö´ÐУ©ssh-agent ³ÌÐòÉú³ÉµÄÃüÁȷ±£ÄúÖ¸¶¨µÄÊÇ·´ÒýºÅ£¨`£©¶ø²»Êǵ¥ÒýºÅ£¡Ö´Ðкó£¬eval `ssh-agent` Óï¾ä½«·µ»Ø´úÀíµÄ½ø³Ì±êʶ·û¡£ÔÚÄ»ºó£¬SSH_AUTH_SOCK ºÍ SSH_AGENT_PID shell ±äÁ¿ÒѾ±»µ¼³ö¶ø¿ÉÒÔʹÓá£Äú¿ÉÒÔ½«ËüÃÇÏÔʾÔÚ shell ¿ØÖÆ̨ÖÐÀ´²é¿´ËüÃǵÄÖµ£º
[offsite]$ echo $SSH_AUTH_SOCK
/tmp/ssh-XX7bhIwq/agent.14197
$SSH_AUTH_SOCK £¨SSH Authentication Socket µÄËõд£©ÊÇÒ»¸ö±¾µØÌ×½Ó×ÖµÄλÖã¬Ó¦ÓóÌÐò¿ÉÒÔͨ¹ýËüÀ´Óë ssh-agent ͨÐÅ¡£½« eval `ssh-agent` Óï¾ä¼ÓÈëµ½ÄúµÄ ~/.bash_profile ÎļþÒÔÈ·±£ SSH_AUTH_SOCK ºÍ SSH_AGENT_PID ʼÖÕ±»×¢²á¡£
ssh-agent ÏÖÔÚ¾ÍÒѾ³ÉΪһ¸öºǫ́½ø³Ì£¬¿ÉÒÔÓà top ºÍ ps ÃüÁî²é¿´µÃµ½¡£
ÏÖÔÚÎÒÃǾÍÒѾ¿ÉÒÔʹÓà ssh-agent ¹²ÏíÎÒÃǵĿÚÁΪ´Ë£¬ÎÒÃDZØÐëʹÓÃÒ»¸öÃûΪ ssh-add µÄ³ÌÐò£¬Õâ¸ö³ÌÐò½«ÎÒÃǵĿÚÁîÌí¼Ó£¨·¢ËÍ£©µ½ÔËÐÐ×ÅµÄ ssh-agent ³ÌÐò¡£
Çåµ¥ 8. ÓÃÓÚÃâ¿ÚÁîµÇ¼µÄ ssh-add [code] [offsite]$ ssh-add
Enter passphrase for /home/accountname/.ssh/id_dsa: (enter passphrase)
Identity added: /home/accountname/.ssh/id_dsa
(/home/accountname/.ssh/id_dsa)
ÏÖÔÚ£¬µ±ÎÒÃÇ·ÃÎÊ server1 ʱ£¬²»»áÔÙ±»ÌáʾÊäÈë¿ÚÁ
[offsite]$ ssh accountname@server1.com
[server1]$ exit
Èç¹ûÄú»¹²»ÏàÐÅ£¬ÄÇô³¢ÊÔÈ¥µô£¨kill -9£©ssh-agent ½ø³Ì£¬È»ºóÖØÐÂÁ¬½Ó server1¡£ÕâÒ»´Î£¬Äú½«×¢Òâµ½£¬server1 ½«»áѯÎÊ´æ´¢ÔÚ .ssh Ŀ¼Ï id_dsa ÖеÄ˽ԿµÄ¿ÚÁ
[offsite]$ kill -9 $SSH_AGENT_PID
[offsite]$ ssh accountname@server1.com
Enter passphrase for key '/home/accountname/.ssh/id_dsa':
ʹÓà keychain ¼ò»¯ÃÜÔ¿·ÃÎÊ
µ½ÏÖÔÚΪֹ£¬ÎÒÃÇÒѾÁ˽âÁ˼¸¸ö OpenSSH ³ÌÐò£¨ssh¡¢scp¡¢ssh-agent ºÍ ssh-add£©£¬¶øÇÒÎÒÃÇÒѾ´´½¨²¢°²×°ÁË˽ԿºÍ¹«Ô¿À´ÆôÓÃÒ»¸ö°²È«¶øÇÒ×Ô¶¯µÄµÇ¼¹ý³Ì¡£Äú¿ÉÄÜÒѾÒâʶµ½£¬´ó²¿·ÖÉèÖù¤×÷Ö»ÐèÒª½øÐÐÒ»´Î¡£ÀýÈ磬´´½¨ÃÜÔ¿¡¢°²×°ÃÜÔ¿¡¢Í¨¹ý .bash_profile Ö´ÐÐ ssh-agent µÄ¹ý³ÌÔÚÿ̨»úÆ÷Ö»ÐèÒª½øÐÐÒ»´Î¡£ÄÇÕæÊǺÃÏûÏ¢¡£
²»Ì«ÀíÏëµÄÏûÏ¢ÊÇ£¬ÎÒÃÇÿ´ÎµÇ¼µ½ÀëÏߵĻúÆ÷ÉÏʱ£¬¶¼±ØÐëµ÷Óà ssh-add£¬¶øÇÒ£¬ssh-agent ÓëÎÒÃǽ«ÒªÓÃÀ´×Ô¶¯»¯±¸·Ý¹¤×÷µÄ cron µ÷¶È½ø³Ì²¢²»Ö±½Ó¼æÈÝ¡£cron ½ø³Ì²»ÄÜÓë ssh-agent ͨÐŵÄÔÒòÊÇ£¬cron ×÷ÒµÊÇ×÷Ϊ cron µÄ×Ó½ø³ÌÀ´Ö´ÐУ¬ÕâÑùËüÃǾͲ»»á¼Ì³Ð $SSH_AUTH_SOCK shell ±äÁ¿¡£
ÐÒÔ˵ÄÊÇ£¬ÓÐÒ»¸ö½â¾ö·½°¸²»µ«¿ÉÒÔÏû³ý ssh-agent ºÍ ssh-add µÄ¾ÖÏÞ£¬¶øÇÒ¿ÉÒÔÈÃÎÒÃÇʹÓà cron À´×Ô¶¯½øÐи÷ÖÖÐèÒª¶ÔÆäËû»úÆ÷½øÐа²È«µØÎÞÃÜÂë·ÃÎʵĹý³Ì¡£ÔÚËû 2001 Äê·¢±íµÄÈýƪ developerWorks ϵÁÐÎÄÕÂÖУ¬¼´ OpenSSH key management£¨²ÎÔÄ ²Î¿¼×ÊÁÏ ÒÔ»ñµÃÁ´½Ó£©£¬Daniel Robbins ½éÉÜÁËÒ»¸öÃûΪ keychain µÄ shell ½Å±¾£¬ËüÊÇ ssh-add ºÍ ssh-agent µÄÒ»¸öÇ°¶Ë£¬¼ò»¯ÁËÕû¸öÎÞÃÜÂëµÄ¹ý³Ì¡£Ëæ×Åʱ¼äµÄ¹ýÈ¥£¬keychain ½Å±¾ÒѾ¾ÀúÁ˺ܶà¸Ä½ø£¬ÏÖÔÚÓÉ Aron Griffis ά»¤£¬Æä×îÐ嵀 2.3.2-1 ·¢²¼°æ±¾¹«²¼ÓÚ 2004 Äê 6 Ô 17 ÈÕ¡£
keychain shell ½Å±¾Ì«³¤ÒÔÖÂÓÚÎÞ·¨ÔÚ±¾ÎÄÖÐÁгö£¬ÒòΪ¾«ÐıàдµÄ½Å±¾ÖаüÀ¨Á˺ܶà´íÎó¼ì²â¡¢·á¸»µÄÎĵµÒÔ¼°·Ç³£¶àµÄ¿çƽ̨´úÂë¡£²»¹ý£¬keychain ¿ÉÒÔ×ÔÏîÄ¿µÄ Web Õ¾µãÉÏ·½±ãµØÏÂÔصõ½£¨²ÎÔÄ ²Î¿¼×ÊÁÏ ÒÔ»ñµÃÁ´½Ó£©¡£
ÏÂÔز¢°²×°ÁË keychain ºó£¬Ê¹ÓÃËü¾ÍºÜ¼òµ¥ÁË¡£Ö»ÐèÒªµÇ¼µ½Ã¿Ì¨»úÆ÷²¢½«ÏÂÃæÁ½ÐÐÌí¼Óµ½Ã¿¸ö .bash_profile Îļþ£º
CODE: [Copy to clipboard]
keychain id_dsa
. ~/.keychain/$HOSTNAME-sh
ÔÚÄúµÚÒ»´ÎÖØеǼµ½Ã¿Ì¨»úÆ÷ʱ£¬keychain ½«ÏòÄúѯÎÊ¿ÚÁî¡£²»¹ý£¬³ý·Ç»úÆ÷±»ÖØÐÂÆô¶¯£¬·ñÔò£¬ÒÔºóÔٵǼʱ£¬keychain ½«²»»áÔÙÒªÇóÄúÖØÐÂÊäÈë¿ÚÁî¡£×îºÃµÄÊÇ£¬cron ÈÎÎñÏÖÔÚ¿ÉÒÔʹÓà OpenSSH ÃüÁîÀ´°²È«µØ·ÃÎÊÔ¶³ÌµÄ»úÆ÷£¬¶ø²»ÐèÒª½»»¥µØʹÓÿÚÁî¡£¸üºÃµÄ°²È«ºÍ¸üÈÝÒ×µÄʹÓã¬ÏÖÔÚÎÒÃÇÒѾ¼æµÃ¡£
Çåµ¥ 9. ÔÚÿ̨»úÆ÷Éϳõʼ»¯
CODE: [Copy to clipboard]
KeyChain 2.3.2; http://www.gentoo.org/projects/keychain
Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the
GPL
* Initializing /home/accountname/.keychain/localhost.localdomain-sh
file...
* Initializing /home/accountname/.keychain/localhost.localdomain-csh
file...
* Starting ssh-agent
* Adding 1 key(s)...
Enter passphrase for /home/accountname/.ssh/id_dsa: (enter passphrase)
½Å±¾»¯±¸·Ý¹ý³Ì
ÎÒÃǵÄÏÂÒ»¸öÈÎÎñÊÇ´´½¨Ö´ÐбØÒªµÄ±¸·Ý¹ý³ÌµÄ shell ½Å±¾¡£Ä¿±êÊÇÖ´ÐзþÎñÆ÷ 1 ºÍ 2 µÄÍêÈ«Êý¾Ý¿â±¸·Ý¡£ÔÚÎÒÃǵÄÀý×ÓÖУ¬Ã¿¸ö·þÎñÆ÷¶¼ÔËÐÐ×Å MySQL Êý¾Ý¿â·þÎñÆ÷£¬ÎÒÃÇʹÓà mysqldump ÃüÁîÐй¤¾ßÀ´½«Ò»Ð©Êý¾Ý¿â±íµ¼³öµ½Ò»¸ö SQL ÊäÈëÎļþÖС£
Çåµ¥ 10. ·þÎñÆ÷ 1 µÄ dbbackup.sh shell ½Å±¾
CODE: [Copy to clipboard]
#!/bin/sh
# change into the backup_agent directory where data files are stored.
cd /home/backup_agent
# use mysqldump utility to export the sites database tables
mysqldump -u sitedb -pG0oDP@sswrd --add-drop-table sitedb --tables
tbl_ccode tbl_machine tbl_session tbl_stats > userdb.sql
# compress and archive
tar czf userdb.tgz userdb.sql
ÔÚ·þÎñÆ÷ 2 ÉÏ£¬ÎÒÃǽ«ÉèÖÃÒ»¸öÀàËƵĽű¾À´±¸·ÝÕ¾µãÊý¾Ý¿âÖиø³öµÄ¶ÀÓÐ±íµ¥¡£Ã¿¸ö½Å±¾¶¼Í¨¹ýÏÂÃæµÄ²½Öè±ê¼ÇΪ¿ÉÖ´Ðеģº
CODE: [Copy to clipboard]
[server1]:$ chmod +x dbbackup.sh
ÔÚ·þÎñÆ÷ 1 ºÍ 2 ÉÏÉèÖÃÁË dbbackup.sh ºó£¬ÎÒÃÇ·µ»Øµ½ÀëÏßµÄÊý¾Ý·þÎñÆ÷£¬ÔÚÄÇÀïÎÒÃǽ«´´½¨Ò»¸ö shell ½Å±¾À´µ÷Óø÷¸öÔ¶³Ì dbbackup.sh ½Å±¾²¢Ëæºó´«ÊäѹËõµÄ£¨.tgz£©Êý¾ÝÎļþ¡£
Çåµ¥ 11. ÓÃÔÚÀëÏßµÄÊý¾Ý·þÎñÆ÷É쵀 backup_remote_servers.sh shell ½Å±¾
CODE: [Copy to clipboard]
#!/bin/sh
# use ssh to remotely execute the dbbackup.sh script on server 1
/usr/bin/ssh backup_agent@server1.com "/home/backup_agent/dbbackup.sh"
# use scp to securely copy the newly archived userdb.tgz file
# from server 1. Note the use of the date command to timestamp
# the file on the offsite data server.
/usr/bin/scp backup_agent@server1.com:/home/backup_agent/userdb.tgz
/home/backups/userdb-$(date +%Y%m%d-%H%M%S).tgz
# execute dbbackup.sh on server 2
/usr/bin/ssh backup_agent@server2.com "/home/backup_agent/dbbackup.sh"
# use scp to transfer transdb.tgz to offsite server.
/usr/bin/scp backup_agent@server2.com:/home/backup_agent/transdb.tgz
/home/backups/transdb-$(date +%Y%m%d-%H%M%S).tgz
backup_remote_servers.sh shell ½Å±¾Ê¹Óà ssh ÃüÁîÀ´Ö´ÐÐÔ¶³Ì·þÎñÆ÷ÉϵĽű¾¡£ÓÉÓÚÎÒÃÇÒѾÉèÖõÄÎÞÃÜÂëµÄ·ÃÎÊ£¬ssh ÃüÁî¿ÉÒÔͨ¹ýÀëÏߵķþÎñÆ÷ÔÚ·þÎñÆ÷ 1 ºÍ 2 ÉÏÔ¶³ÌµØÖ´ÐÐÃüÁî¡£¸Ðл keychain£¬Õû¸öÈÏÖ¤¹ý³ÌÏÖÔÚ¿ÉÒÔ×Ô¶¯Íê³É¡£
µ÷¶È
ÎÒÃǵÄÏÂÒ»¸ö²½Ö裬ҲÊÇ×îºóÒ»¸ö²½Ö裬Êǵ÷¶È backup_remote_servers.sh shell ½Å±¾ÔÚÀëÏßµÄÊý¾Ý´æ´¢·þÎñÆ÷ÉϵÄÖ´ÐС£ÎÒÃǽ«Ïò cron µ÷¶È·þÎñÆ÷ÖÐÌí¼ÓÁ½¸öÌõÄ¿£¬ÒÔÒªÇóÿÌìÖ´Ðб¸·Ý½Å±¾Á½´Î£¬3:34 Ö´ÐÐÒ»´Î£¬8:34 ÔÙÖ´ÐÐÒ»´Î¡£ÔÚÀëÏߵķþÎñÆ÷ÉÏʹÓà edit£¨-e£©Ñ¡Ïîµ÷Óà crontab ³ÌÐò¡£
CODE: [Copy to clipboard]
[offsite]:$ crontab -e
crontab µ÷Óà VISUAL »ò EDITOR shell »·¾³±äÁ¿ËùÖ¸¶¨µÄĬÈϵıà¼Æ÷¡£È»ºó£¬ÊäÈëÁ½¸öÌõÄ¿²¢±£´æºÍ¹Ø±ÕÎļþ¡£
Çåµ¥ 12. ÀëÏߵķþÎñÆ÷É쵀 Crontab ÌõÄ¿
CODE: [Copy to clipboard]
34 3 * * * /home/backups/remote_db_backup.sh
34 20 * * * /home/backups/remote_db_backup.sh
Ò»¸ö crontab ÐаüÀ¨Á½¸öÖ÷Òª²¿·Ö£¬Ê±¼ä±í²¿·ÖºÍºóÃæµÄÃüÁ·Ö¡£Ê±¼ä±í·ÖΪ¶à¸öÓò£¬ÓÃÀ´Ö¸¶¨Ò»¸öÃüÁîÓ¦¸ÃºÎʱִÐУº
Çåµ¥ 13. Crontab ¸ñʽ
CODE: [Copy to clipboard]
+---- minute
| +----- hour
| | +------ day of the month
| | | +------ month
| | | | +---- day of the week
| | | | | +-- command to execute
| | | | | |
34 3 * * * /home/backups/remote_db_backup.sh
¼ìÑéÄúµÄ±¸·Ý
ÄúÓ¦¸Ã¶Ô±¸·Ý½øÐÐÀýÐеؼì²é£¬ÒÔÈ·±£³ÌÐòÕýÈ·½øÐС£×Ô¶¯³ÌÐò¿ÉÒÔʹ·³ËöµÄ¹¤×÷µÃµ½±ÜÃ⣬µ«ÊÇÓÀÔ¶²»ÄÜÒò´Ë¶øÀÁ¶è¡£Èç¹ûÄúµÄÊý¾ÝÖµµÃ±¸·Ý£¬ÄÇôËüÒ²ÖµµÃÄúʱ³£½øÐгéÑù¼ì²é¡£
¿¼ÂÇÌí¼ÓÒ»¸ö cron ×÷ÒµÀ´ÌáÐÑÄú×Ô¼ºÖÁÉÙÿ¸öÔ¶Ա¸·Ý½øÐÐÒ»´Î¼ì²é¡£ÁíÍ⣬¾³£Ð޸ݲȫÃÜÔ¿Ò²ÊÇÒ»¸öºÃÖ÷Ò⣬ͬÑùÄúÒ²¿ÉÒÔµ÷¶ÈÒ»¸ö cron ×÷ÒµÀ´ÌáÐÑÄú×öÕâ¼þÊ¡£
ÁíÍâµÄ°²È«·À·¶
Òª»ñµÃ¸ü¸ßµÄ°²È«ÐÔ£¬¿ÉÒÔ¿¼ÂÇÔÚÿ̨»úÆ÷ÉÏ°²×°²¢ÅäÖÃÒ»¸öÈëÇÖ¼ì²âϵͳ£¨ntrusion Detection System£¬IDS£©£¬±ÈÈç Snort¡£¿ÉÒÔÔ¤¼û£¬µ±ÈëÇÖÕýÔÚ·¢Éú»òÕß½üÆÚ·¢Éú¹ýʱ£¬IDS ½«»á֪ͨÄú¡£IDS µ½Î»ºó£¬Äú½«¿ÉÒÔÌí¼ÓÆäËû²ã´ÎÉϵݲȫ£¬±ÈÈç¶ÔÄúµÄ±¸·Ý½øÐÐÊý×ÖÇ©ÃûºÍ¼ÓÃÜ¡£
GNU Privacy Guard£¨GnuPG£©¡¢OpenSSL ºÍ ncrypt µÈÁ÷ÐеĿª·ÅÔ´´úÂ빤¾ß¿ÉÒÔÖ§³Öͨ¹ý shell ½Å±¾¶Ô´æµµÎļþ½øÐмÓÃÜ£¬²»¹ý²»½¨ÒéÔÚûÓÐ IDS ÌṩµÄ¶îÍâ²ã´Î±£»¤µÄÇé¿öÏÂÕâÑù×ö£¨²ÎÔÄ ²Î¿¼×ÊÁÏ ÒÔ»ñµÃ¹ØÓÚ Snort µÄ¸ü¶àÐÅÏ¢£©¡£
½áÊøÓï
±¾ÎÄÏòÄúչʾÁËÈçºÎÈÃÄúµÄ½Å±¾ÔÚÔ¶³Ì·þÎñÆ÷Ö´ÐÐÒÔ¼°ÈçºÎÖ´Ðа²È«×Ô¶¯µÄÎļþ´«Êä¡£ÎÒÏ£ÍûÄúÄÜÓɴ˵õ½Áé¸Ð¶ø¿ªÊ¼¿¼ÂDZ£»¤Äú×Ô¼ºµÄÖØÒªÊý¾Ý£¬²¢Ê¹Óà OpenSSH ºÍ Snort µÈ¿ª·ÅÔ´´úÂ빤¾ßÀ´¹¹½¨ÐµĽâ¾ö·½°¸¡£
²Î¿¼×ÊÁÏ
* ÔÚ¹Ù·½µÄ OpenSSH Ö÷Ò³ºÍ OpenSSH Security page Äú½«ÕÒµ½ÏÂÔØ¡¢ÎĵµÒÔ¼°¸ü¶àÄÚÈÝ¡£
* ÔĶÁ Daniel Robbins µÄÓÉÈý²¿·Ö¹¹³ÉµÄ¼«ºÃµÄ IBM developerWorks ÎÄÕ¡°OpenSSH ÃÜÔ¿¹ÜÀí¡±£¨developerWorks£¬2001 Ä꣩²¢ÏÂÔØËûµÄ keychain Ó¦ÓóÌÐò¡£
* ÒªÉîÈëѧϰ SSH£¬Carlos ÏòÄúÍƼö O'Reilly µÄ SSH, The Secure Shell: The Definitive Guide£¨O'Reilly & Associates£¬2001 Ä꣩¡£
* Snort ÈëÇÖ¼ì²âϵͳ£¨IDS£©ÊÇÒ»¸ö¿ª·ÅÔ´´úÂëµÄ×î¼Ñ²úÆ·£¬Éè¼ÆÓÃÀ´¼ì²â²¢±¨¸æδÊÚȨµÄ·ÃÎÊ»ò¿ÉÒɵÄÐÐΪ¡£Èç¹ûÄúÕýÔڼƻ®×Ô¶¯»¯¶Ô´æµµÎļþµÄÇ©ÃûºÍ¼ÓÃÜ£¬ÄÇôһ¶¨ÒªÊ¹ÓÃÒ»¸ö IDS¡£
* Äú¿ÉÒÔʹÓà GNU Privacy Guard£¨GnuPG£©¡¢OpenSSL ºÍ ncrypt ÔÚ shell ½Å±¾ÖжԴ浵±¸·ÝÎļþ½øÐÐÇ©ÃûºÍ¼ÓÃÜ¡£
* Èç¹ûÄúûÓÐʹÓùýËüÃÇ£¬ÄÇôÇë²Î¿¼ TCP wrappers ºÍ xinetd ÖеÄÌáʾ¡£
* Perl °®ºÃÕß»¹»áÓÐÐËȤÔĶÁ¡°Ê¹Óà Perl ×Ô¶¯»¯ UNIX ϵͳ¹ÜÀí¡±£¨developerWorks£¬2001 Ä꣩¡¢ ¡°½éÉÜÓÃÓÚϵͳ¹ÜÀíµÄ cfengine ¡±£¨developerWorks£¬2002 Ä꣩ºÍ ¡°Óà Perl ½øÐÐÓ¦ÓóÌÐòÅäÖá±£¨developerWorks£¬2000 Ä꣩£¬ËüÃǶ¼ÊÇ Ted Zlatanov µÄ×÷Æ·¡£
* developerWorks ÎÄÕ¡°Windows µ½ Linux Ö®ÂãºµÚ 8 ²¿·Ö. ±¸·ÝÓë»Ö¸´¡±£¨developerWorks£¬2003 Ä꣩¸ø³öÁ˹ØÓÚ±¸·Ý²ßÂԵļ¼ÇÉ¡£
* IBM's Tivoli Storage Manager for Linux Ò²¿ÉÒÔ¸ù¾Ý¶¨ÖƵÄʱ¼ä±íÔÚ Linux ¼ÆËã»úºÍ·þÎñÆ÷ÉÏ×Ô¶¯Ö´Ðпɿ¿µÄ±¸·Ý¡¢´æµµºÍ¼¯ÖÐÊý¾Ý¹ÜÀí¡£´ËÍ⣬The Tivoli Product Family ÌṩÁËÓÃÓÚÓû§¹ÜÀí¡¢·ÃÎÊ¿ØÖÆ¡¢ÍøÂç¼à¿Ø ---- »¹Óиü¶à¹¦ÄÜ ---- µÄ²úÆ·£¬¶¼ÓÐͳһµÄ»·¾³ºÍ½Ó¿Ú¡£
* ͨ¹ý IBM developerWorks Tivoli רÇø ÉîÈëÁ˽â Tivoli ½â¾ö·½°¸¡£
* ÔÚ developerWorks Linux רÇø ¿ÉÒÔÕÒµ½¸ü¶àΪ Linux ¿ª·¢Õß×¼±¸µÄ²Î¿¼×ÊÁÏ¡£
* ÔÚ Developer Bookstore Linux ÇøÖж¨¹º ´òÕÛ³öÊÛµÄ Linux Êé¼®¡£
* ͨ¹ý developerWorks Subscription ʹÓÃ×îÐ嵀 IBM ¹¤¾ßºÍÖмä¼þÀ´¿ª·¢ºÍ²âÊÔÄúµÄ Linux Ó¦ÓóÌÐò£ºÄú¿ÉÒÔ×Ô WebSphere¡¢DB2¡¢ Lotus¡¢Rational¡¢ºÍ Tivoli µÃµ½ IBM Èí¼þ£¬ÒÔ¼°Ò»¸ö¿ÉÒÔÔÚ 12 ¸öÔÂÄÚʹÓÃÕâЩÈí¼þµÄÐí¿É£¬ËùÓеĻ¨·Ñ¶¼±ÈÄúÏëÏñµÄÒªµÍ¡£
* ×Ô developerWorks µÄ Speed-start your Linux app רÇøÏÂÔØ¿ÉÒÔÔËÐÐÓÚ Linux Ö®Éϵľ¹ýÌôÑ¡µÄ developerWorks Subscription ²úÆ·Ãâ·Ñ²âÊÔ°æ±¾£¬°üÀ¨ WebSphere Studio Site Developer¡¢WebSphere SDK for Web services¡¢WebSphere Application Server¡¢DB2 Universal Database Personal Developers Edition¡¢Tivoli Access Manager ºÍ Lotus Domino Server¡£Òª¸ü¿ìËٵؿªÊ¼ÉÏÊÖ£¬Çë²ÎÔÄÕë¶Ô¸÷¸ö²úÆ·µÄ how-to ÎÄÕºͼ¼ÊõÖ§³Ö¡£
ming ÓÚ 2005-07-12 00:22:54·¢±í:
Ö§³Ö
ÐÂРÓÚ 2005-05-15 00:15:15·¢±í:
¹ØÓÚ×÷Õß
Carlos Justiniano Carlos Justiniano ÊÇ Ecuity, Inc µÄÒ»ÃûÈí¼þÉè¼Æʦ¡£ËûËù¸ÐÐËȤµÄ·½Ãæ°üÀ¨Í¨Ðźͷֲ¼Ê½¼ÆËã¡£Carlos ΪºÜ¶à¼¼ÊõÔÓ־׫дÎÄÕ¡£Ëû»¹ÊÇ»ùÓÚ Linux µÄ ChessBrain ÏîÄ¿µÄµì»ùÈ˺ÍÉè¼Æʦ£¬ÄǸöÏîÄ¿Ó®µÃÁËÓë·Ö²¼Ê½¼ÆËãÏà¹ØµÄ 2005 Guinness World Record¡£Äú¿ÉÒÔͨ¹ý carlos.justiniano@ecuityinc.com ÓëËûÁªÏµ¡£