«n¼Æ¾Úªº¥á¥¢¥i¯à·N¨ýµÛP©Rªº¯}Ãa¡C¾¨ºÞ¦p¦¹¡AÁÙ¬O¦³µL¼Æ±M·~¤Hû©¿µø¤F¹ï¥L̪º¼Æ¾Úªº³Æ¥÷¡CÁöµMì¦]¥i¯à¦U¤£¬Û¦P¡A¦ý¬O¡A³Ì±`¨£ªº¤@Ó¸ÑÄÀ¬O¡A°õ¦æ¨Ò¦æ³Æ¥÷½T¹ê·Ðº¾¡C¥Ñ©ó¾÷¾¹¾Õªø¤_§¹¦¨´¶³q¦Ó«´_ªº¥ô°È¡A¦]¦¹¡A¦Û°Ê¤Æ³Æ¥÷ªº¹Lµ{¬O°§C¤u§@¤º¦bªº¬\Àê©Ê©M¤HÌ»P¥ÍѨӪº©ì©µ¶É¦VªºÃöÁä©Ò¦b¡C ¦pªG±z¨Ï¥Î Linux¡A¨º»ò±z´N¤w¸g¥i¥H¨Ï¥Î¨º¨Ç³Ð«Ø©w»s³Æ¥÷¸Ñ¨M¤è®×ªº·¥¨ä±j¤jªº¤u¨ã¡C¥»¤å¤¤ªº¤è®×¡A¥i¥HÅý±z¨Ï¥Î´X¥G¨CÓ Linux µo¦æª©¥»³£ªþ±aªº¶}©ñ·½¥N½X¤u¨ã¨Ó°õ¦æ±q²³æªº¨ì§ó°ª¯Å¦Ó¥B¦w¥þªººô¸ô³Æ¥÷¡C ²³æ³Æ¥÷ ¥»¤å«ö·Ó¤@¨B¤@¨Bªº¤èªk¨Ó¶i¦æÁ¿z¡A¥un±z¿í´`¨º¨Ç°ò¥»ªº¨BÆJ¡A¦¹¤èªk·|¬O«D±`ª½Æ[ªº¡C ¦b¬ã¨s§ó°ª¯Åªº¤À§G¦¡³Æ¥÷¸Ñ¨M¤è®×¤§«e¡AÅý§Ú̺¥ý¨Ó¬Ý¤@Ó²³æ¦Ó±j¤jªº¦sÀɾ÷¨î¡CÅý§Ų́ӤÀªR¤@Ó¦W¬° arc ªº¤è«Kªº¸}¥»¡A¥¦¥i¥HÅý§Ú̦b Linux shell ´£¥Ü²Å¤¤³Ð«Ø³Æ¥÷§Ö·Ó¡C ²M³æ 1. arc shell ¸}¥»
#!/bin/sh tar czvf $1.$(date +%Y%m%d%-H%M%S).tgz $1 exit $? |
arc ¸}¥»±µ¦¬¤@Ó³æ¿Wªº¤å¥ó©Î¥Ø¿ý¦W§@¬°°Ñ¼Æ¡A³Ð«Ø¤@ÓÀ£ÁYªº¦sÀɤå¥ó¡A¦P®É±N·í«e¤é´Á´O¤J¨ì¥Í¦¨ªº¦sÀɤå¥óªº¦W¦r¤§¤¤¡C¨Ò¦p¡A¦pªG±z¦³¤@Ó¦W¬° beoserver ªº¥Ø¿ý¡A±z¥i¥H½Õ¥Î arc ¸}¥»¡A±N beoserver ¥Ø¿ý¦W¶Ç»¼µ¹¥¦¥H³Ð«Ø¤@ÓÀ£ÁYªº¦sÀɤå¥ó¡A¦p¡G beoserver.20040321-014844.tgz ¨Ï¥Î date ©R¥O¬O¬°¤F´O¤J¤@Ó¤é´Á©M®É¶¡ÂW¥HÀ°§U±z²Õ´¦sÀɤå¥ó¡C¤é´Áªº®æ¦¡¬O¦~¡B¤ë¡B¤é¡B¤p®É¡B¤À¡B¬í ¡X¡X ÁöµM¬í°ìªº¨Ï¥Î¦³¤@¨Ç¦h¾l¡C¬d¬Ý data ©R¥Oªº¤â¥U¡] man date¡^¨Ó¤F¸Ñ¨ä¥L¿ï¶µ¡C¥t¥~¡A¦b²M³æ 1 ¤¤¡A§Ú̦V tar ¶Ç»¼¤F -v¡]verbose¡^¿ï¶µ¡C³o´N¨Ï±o tar Åã¥Ü¥X¥¦¥¿¦b¦sÀɪº¤å¥ó¡C¦pªG±z³ßÅwÀRÀq¦a¶i¦æ³Æ¥÷¡A¨º»ò§R°£³oÓ -v ¿ï¶µ¡C ²M³æ 2. ¦sÀÉ beoserver ¥Ø¿ý
$ ls arc beoserver
$ ./arc beoserver beoserver/ beoserver/bookl.dat
beoserver/beoserver_ab_off beoserver/beoserver_ab_on
$ ls arc beoserver beoserver.20040321-014844.tgz |
°ª¯Å³Æ¥÷ ³oÓ²³æ³Æ¥÷¬O¹ê¥Îªº¡F¤£¹L¡A¥¦¤´µM¥]§t¤@Ó¤H¤u³Æ¥÷ªº¹Lµ{¡C¦æ·~³Ì¨Î¸gÅç³q±`«ØÄ³±N¼Æ¾Ú³Æ¥÷¨ì¦hÓ´CÅé¤W¡A¨Ã³Æ¥÷¨ì¤À¶}ªº¤£¦P¦a²z¦ì¸m¡C¤¤¤ß«ä·Q¬OÁ×§K¨Ì¿à©ó¥ô¦ó¤@Ó³æ¿Wªº¦sÀx´CÅé©Î³æ¿Wªº¦ì¸m¡C ¦b¤U¤@Ó¨Ò¤l¤¤§Ú̱NÀ³¹ï³o¤@¬D¾Ô¡A§Ú̱N¤ÀªR¤@Ó¦p¹Ï 1 ©Ò¥Üªº°²·Qªº¤À§G¦¡ºô¸ô¡A¥¦®i¥Ü¤F¹ï¨â¥x»·µ{¦øªA¾¹©M¤@¥xÂ÷½u¦sÀx¦øªA¾¹ªº¨t²ÎºÞ²z¡C 
¹Ï 1. ¤À§G¦¡ºô¸ô ¦øªA¾¹ #1 ©M #2 ¤Wªº³Æ¥÷¤å¥ó±N¦w¥þ¦a¶Ç¿é¨ìÂ÷½u¦sÀx¦øªA¾¹¤W¡A¦Ó¥B¾ãÓ¤À§G¦¡³Æ¥÷¹Lµ{±N¦b¨S¦³¤H¤u¤z¯Aªº±¡ªp¤U©w´Á¶i¦æ¡C§Ú̱N¨Ï¥Î¤@²Õ¼Ð·Çªº¤u¨ã¡]¶}©ñ¦w¥þ shell ¤u¨ã®M¥ó¡]OpenSSH¡^ªº¤@³¡¤À¡^¡A¥H¤ÎºÏ±a¦sÀɾ¹¡]tar¡^©M cron ¥ô°È½Õ«×ªA°È¡C§Ú̪º¥þ³¡p¹º¬O¡A¨Ï¥Î cron ¶i¦æ½Õ«×¡A¨Ï¥Î shell µ{¦¡©M tar À³¥Îµ{¦¡§¹¦¨³Æ¥÷¹Lµ{¡A¨Ï¥Î OpenSSH ¦w¥þ shell¡]ssh¡^¥[±K¶i¦æ»·µ{³X°Ý¡B»{ÃÒ¡B¦w¥þ shell «þ¨©¡]scp¡^¥H¦Û°Ê§¹¦¨¤å¥ó¶Ç¿é¡CnÀò±o¥t¥~ªº¸ê®Æ½Ð°È¥²¬d¬Ý¨CÓ¤u¨ãªº¤â¥U¡C ¨Ï¥Î¤½Æ_/¨pÆ_¶i¦æ¦w¥þªº»·µ{³X°Ý ¦b¼Æ¦r¦w¥þªº¤W¤U¤å¤¤¡A±KÆ_¡]key¡^«üªº¬O¥Î¨Ó¥[±K©Î¸Ñ±K¨ä¥L¼Æ¾Ú¤ùÂ_ªº¤@ӼƾڤùÂ_¡C¤½Æ_¨pÆ_¼Ò¦¡ªº¦³½ì¤§³B¦b©ó¡A¨Ï¥Î¤½Æ_¥[±Kªº¼Æ¾Ú¡A¥u¦³¥Î¬ÛÀ³ªº¨pÆ_¤~¥i¥H¸Ñ±K¡C±z¥i¥H¦Û¥Ñ¦aµo§G¤@Ó¤½Æ_¡A³o¼Ë§O¤H´N¥i¥H¹ïµo°eµ¹±zªº®ø®§¶i¦æ¥[±K¡C¤½Æ_/¨pÆ_¼Ò¦¡¹ý©³§ïÅܤF¼Æ¦r¦w¥þªºì¦]¤§¤@¬O¡Aµo°eªÌ©M±µ¦¬ªÌ¤£¥²¦A¦@¥Î¤@Ó³q¥Îªº±K½X¡C°£¤F¨ä¥L¤è±ªº°^Äm¡A¤½Æ_/¨pÆ_¥[±K¨Ï¥Î¹q¤l°Ó°È©M¨ä¥L¦w¥þ¶Ç¿é¦¨¬°¥i¯à¡C¦b¥»¤å¤¤¡A§Ú̱N³Ð«Ø¨Ã¨Ï¥Î¤½Æ_©M¨pÆ_¨Ó³Ð«Ø¤@Ó«D±`¦w¥þªº¤À§G¦¡³Æ¥÷¸Ñ¨M¤è®×¡C n¶i¦æ³Æ¥÷¹Lµ{ªº¨C¥x¾÷¾¹³£¥²¶·¹B¦æ OpenSSH ¦w¥þ shell ªA°È¡]sshd¡^¡A¦P®ÉÅý 22 ºÝ¤f¥i¥H³q¹L¥ô¦ó¤º³¡¨¾¤õÀð³Q³X°Ý¡C¦pªG±z³X°Ý»·µ{ªº¦øªA¾¹¡A¨º»ò«Ü¦³¥i¯à±z¥¿¦b¨Ï¥Î¦w¥þ shell¡C §Ú̪º¥Ø¼Ð±N¬O¡A¤£»Ýn¤H¤u´£¨Ñ±K½X´N¥i¥H¦w¥þ¦a³X°Ý¾÷¾¹¡C¤@¨Ç¤H»{¬°³Ì²³æªº¿ìªk¬O³]¸mµL±K½Xªº³X°Ý¡G¤£n³o¼Ë°µ¡C³o¼Ë°µ¤£¦w¥þ¡C¤£¥Î¨º¼Ë¡A¥»¤å¤¤§Ú̱N¨Ï¥Îªº¤èªk¥i¯à·|¦û¥Î±z¤j¬ù¤@Ó¤p®Éªº®É¶¡¡A«Ø¥ß°_¤@Ó»P¨Ï¥Î¡§µL±K½X¡¨±b¸¹¦P¼Ë¤è«Kªº¨t²Î ¡X¡X ¤£¹L¥¦¬O¤½»{«D±`¦w¥þªº¡C Åý§Ú̺¥ý½T«O OpenSSH ¤w¸g¦w¸Ë¡A±µ¤U¨Ó¬d¬Ý¥¦ªºª©¥»¸¹¡C§¹¦¨¥»¤å®É¡A³Ì·sªºµo¦æªº OpenSSH ¬O 2004 ¦~ 2 ¤ë 24 ¤éµo§Gªºª©¥» 3.8¡C±zÀ³¸Ó¦Ò¼{¨Ï¥Î¤@Ó¸û·sªº¦Ó¥Béwªºµo§Gª©¥»¡A¦Ü¤Ö©Ò¥Îªºª©¥»À³¸Ón¤ñª©¥» 2.x ·s¡C³X°Ý OpenSSH Security ºô¶¥HÀò±oÃö©ó¯S©wª©¥»ªº¯Ê³´ªº²Ó¸`¡C¨ì¥Ø«e¬°¤î¡AOpenSSH ¬O«D±`éwªº¡A¦Ó¥B¤w¸gÃÒ©ú¤£¦s¦b¨ä¥L SSH ¤u¨ã©Ò³ø§iªº«Ü¦h¯Ê³´¡C ¦b shell ´£¥Ü²Å¤¤¡A¿é¤J ssh ¨Ãµ¹¥X«nªº V ¿ï¶µ¨ÓÀˬdª©¥»¸¹¡G $ ssh -V OpenSSH_3.5p1, SSH protocols 1.5/2.0, OpenSSL 0x0090701f ¦pªG ssh ªð¦^ªºª©¥»¸¹¤j©ó 2.x¡A«h¾÷¾¹³B©ó¬Û¹ï¨}¦nªºª¬ºA¡CµL½×¦p¦ó¡A«ØÄ³±z©Ò¦³ªº³nÅé³£¨Ï¥Î³Ì·sªºÃ©wª©¥»¡A³o¹ï©ó¦w¥þ¬ÛÃöªº³nÅé¨Ó»¡¤×¨ä«n¡C §Ú̪º²Ä¤@Ó¨BÆJ¬O¡A¨Ï¥Î±N·|¦³¯SÅv³X°Ý¦øªA¾¹ 1 ©M 2 ªº±b¸¹µn¿ý¨ìÂ÷½u¦sÀx¦øªA¾¹¾÷¾¹¡]¨£¹Ï 1¡^¡C $ ssh accountname@somedomain.com µn¿ý¨ìÂ÷½u¦sÀx¦øªA¾¹¥H«á¡A¨Ï¥Î ssh-keygen µ{¦¡¨Ãµ¹¥X -t dsa ¿ï¶µ¨Ó³Ð«Ø¤@Ó¤½Æ_/±KÆ_¹ï¡C -t ¿ï¶µ¬O¥²¶·ªº¡A¥Î¨Ó«ü©w§ÚÌn¥Í¦¨ªº±KÆ_Ãþ«¬¡C§Ú̱N¨Ï¥Î¼Æ¦rñ¦Wºtºâªk¡]Digital Signature Algorithm¡ADSA¡^¡A¥¦Åý§ÚÌ¥i¥H¨Ï¥Î§ó·sªº SSH2 ¨óij¡C°Ñ¾\ ssh-keygen ¤â¥U¥HÀò±o§ó¦h²Ó¸`¡C ¦b ssh-keygen °õ¦æªº¹Lµ{¤¤¡A¦b¸ß°Ý±z±K½X¡]passphrase¡^¤§«e¡A±N´£¥Ü±z¿é¤J ssh ±KÆ_¦sÀxªº¦ì¸m¡C·í¸ß°Ý¦b¦ó³B¦sÀx±KÆ_®É¥u»Ýn«ö¤U¦^¨®Áä¡AµM«á ssh-keygen µ{¦¡±N³Ð«Ø¤@Ó¦W¬° .ssh ªºÁôÂåؿý¡]¦pªGì¨Ó¤£¦s¦b¡^¡A¥H¤Î¨âÓ¤å¥ó¡A¤@Ó¤½Æ_¤å¥ó©M¤@Ó¨pÆ_¤å¥ó¡C ssh-keygen ªº¤@Ó¦³½ì¯S©Ê¬O¡A·í´£¥Ü¿é¤J¤@Ó±K½X®É¡A¥¦Åý±z¥i¥H¥u¬O²³æ¦a«ö¤U¦^¨®Áä¡C¦pªG±z¨S¦³µ¹¥X±K½X¡A¨º»ò ssh-keygen ±N¥Í¦¨¨S¦³¥[±Kªº±KÆ_!¦p±z©Ò·Q¡A³o¤£¬OÓ¦n¥D·N¡C·ín¨D¿é¤J±K½X®É¡A½T«O¿é¤J¤@Ó¨¬°÷ªøªº¦r²Å®ø®§¡A³Ì¦n¥]§t²V¦X¦r²Å¦Ó¤£¶È¶È¬O¤@Ó²³æªº±K½X¦r²Å¦ê¡C ²M³æ 3. ¥Ã»·¿ï¾Ü¦nªº±K½X
[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 ¥Ø¿ý¬O¤@ÓÁôÂ꺡§dot¡¨¥Ø¿ý¡A©Ò¥Hnµ¹ ls ©R¥O¶Ç¤J¤@Ó -a ¿ï¶µ¨Ó¬d¬Ý·s³Ð«Øªº¥Ø¿ý¡G
[offsite]$ ls -a . .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .ssh |
¶i¤JÁôÂêº .ssh ¥Ø¿ý¨Ã¦C¥X¨ä¤º®e¡G
[offsite]$ cd .ssh [offsite]$ ls -lrt id_dsa id_dsa.pub |
²{¦b¡A¦bÁôÂêº .ssh ¥Ø¿ý¤¤¡A§Ṳ́w¸g¾Ö¦³¤F¤@Ó¨pÆ_¡]id_dsa¡^©M¤@Ó¤½Æ_¡]id_dsa.pub¡^¡C±z¥i¥H¨Ï¥Î vi ©Î emacs µ¥¤å¥»½s¿è¤u¨ã©ÎªÌ²³æ¦a¨Ï¥Î less ©Î cat ©R¥O¨Ó¤ÀªR¨CÓ±KÆ_¤å¥óªº¤º®e¡C±z±N¬Ý¨ì¥Ñ²V¦X¦r²Åºc¦¨ªº¤º®e¤w¸g¸g¹L¤F base64 ½s½X¡C µM«á¡A§ÚÌ»Ýn±N¤½Æ_«þ¨©¨Ã¦w¸Ë¨ì¦øªA¾¹ 1 ©M 2 ¤W¡C¤£n¨Ï¥Î ftp¡C§ó¦X²zªº¬O¡A¨Ï¥Î¦w¥þ«þ¨©µ{¦¡¨Ó±N¤½Æ_¶Ç°e¨ì¨C¤@¥x»·µ{¾÷¾¹¤W¡C ²M³æ 4. ±N¤½Æ_¦w¸Ë¨ì»·µ{¦øªA¾¹¤W
[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 |
¦b¦w¸Ë§¹·sªº¤½Æ_«á¡A§ÚÌ´N¥i¥H¨Ï¥Î³Ð«Ø¨pÆ_©M¤½Æ_®É«ü©wªº±K½X¨Óµn¿ý¨ì¨C¤@¥x¾÷¾¹¡C²{¦b¡Aµn¿ý¨ì¨C¥x¾÷¾¹¡A¨Ã±N offsite.pub ¤å¥óªº¤º®eªþ¥[¨ì¤@Ó¦W¬° authorized_keys ªº¤å¥ó¤¤¡A³oÓ¤å¥ó¦sÀx¦b¨C¥x»·µ{¾÷¾¹ªº .ssh ¥Ø¿ý¤U¡C§ÚÌ¥i¥H¨Ï¥Î¤@Ӥ奻½s¿è¾¹©ÎªÌ²³æ¦a¨Ï¥Î cat ©R¥O¨Ó±N offsite.pub ¤å¥óªº¤º®eªþ¥[¨ì authorized_keys ¤å¥ó¡G ²M³æ 5. ±N offsite.pub ²K¥[¨ì¤w±ÂÅv±KÆ_¦Cªí
[offsite]$ ssh accountname@server1.com
accountname@server1.com's password:
(enter password, not new passphrase!)
[server1]$ cat offsite.pub >> ./ssh/authorized_keys |
±µ¤U¨Óªº¨BÆJ¬O¦Ò¼{¤@¨ÇÃB¥~ªº¦w¥þ©Ê¡Cº¥ý¡A§ÚÌ×§ï .ssh ªº³X°Ý³\¥iÅv¡A¥H¨Ï±o¥u¦³©Ò¦³ªÌ¦³Åª¡B¼g©M°õ¦æªº³\¥iÅv¡CµM«á¡A§Ú̽T«O authorized_keys ¤å¥ó¥u¯à¥Ñ©Ò¦³ªÌ¨Ó³X°Ý¡C³Ì«á¡A±N¥ý«e¤W¶Çªº offsite.pub ±KÆ_¤å¥ó§R°£¡A¦]¬°¦A¤]¤£»Ýn¥¦¤F¡C½T«O³]¸m¾A·íªº³X°Ý³\¥iÅv«Ü«n¡A¦]¬° OpenSSH ¦øªA¾¹¥i¯à·|©Úµ´¨Ï¥Î¨ã¦³¤£¦w¥þ³X°Ý³\¥iÅvªº±KÆ_¡C ²M³æ 6. ¨Ï¥Î chmod ×§ï³\¥iÅv
[server1]$ chmod 700 .ssh
[server1]$ chmod 600 ./ssh/authorized_keys
[server1]$ rm offsite.pub [server1]$ exit |
¦b¦øªA¾¹ 2 ¤W§¹¦¨¦P¼Ëªº¨BÆJ«á¡A§ÚÌ´N¥i¥Hªð¦^¨ìÂ÷½u¦sÀx¾÷¾¹¤W¨Ó´ú¸Õ·sªº±K½XÃþ«¬ªº³X°Ý¡C¦bÂ÷½u¦øªA¾¹¤W±z¥i¥H¿é¤J¤U±ªº¤º®e¡G [offsite]$ ssh -v accountname@server1.com ¦bÀËÅç±zªº±b¸¹²{¦b¥i¥H¨Ï¥Î·sªº±K½X¦Ó¤£¬Oì¨Óªº±K½X¨Ó³X°Ý»·µ{ªº¦øªA¾¹®É¡A¨Ï¥Î -v ©Î verbose ¼Ð°O¿ï¶µ¨ÓÅã¥Ü½Õ¸Õ¸ê°T¡C½Õ¸Õ¿é¥X°£¤F¯àÅý±z¦b¤@Ó°ªªº¼h±¤WÆ[¹î¨ì»{ÃÒ¹Lµ{¬O¦p¦ó¤u§@ªº¤§¥~¡AÁÙ¥i¥HÅã¥Ü¥X±z¥i¥H¥H¨ä¥L¤è¦¡µLªk±o¨ìªº«n¸ê°T¡C¦b¥H«áªº³s±µ¤¤±z¥i¯à¨Ã¤£»Ýn«ü©w -v ¼Ð°O¡F¦ý¬O¦b´ú¸Õ³s±µ®É¥¦¬Û·í¦³¥Î¡C ª`¡G¦pªG¥Í¦¨±KÆ_¹ïªº®ÉÔ¿é¤Jªº±K½X¬°ªÅ¡A¨º»ò³s±µªº®ÉÔ¤£»Ýn¿é¤J±K½X¡C ¨Ï¥Î ssh-agent ¦Û°Ê¤Æ¾÷¾¹³X°Ý
¡@¡@ssh-agent µ{¦¡¦p¦P¤@Ӭݪù¤H¡A¥¦®Ú¾Ú»Ýn¦w¥þ¦a´£¨Ñ¹ï¦w¥þ±KÆ_ªº³X°Ý¡Cssh-agent ±Ò°Ê«á¡A¥¦´N·|¦b«á»O¹B¦æ¡A¨Ã¥B¥i¥H¥Ñ ssh ©M scp µ{¦¡µ¥¨ä¥L OpenSSH À³¥Îµ{¦¡©Ò¨Ï¥Î¡C³o´N¨Ï±o ssh µ{¦¡¥i¥H½Ð¨D¤@Ó¤w¸g¸Ñ±K¤Fªº±KÆ_¡A¦Ó¤£¬O¦b¨C¦¸»Ýn®É¦V±z¸ß°Ý¨pÆ_ªº¦w¥þ±K½X¡C
Åý§Ų́ӥJ²Ó¬ã¨s¤@¤U ssh -agent¡Cssh-agent ¹B¦æ®É¥¦·|¿é¥X shell ©R¥O¡G
¡@¡@²M³æ 7. ssh-agent À³¥Î
[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; |
¡@¡@§ÚÌ¥i¥H¨Ï¥Î shell ªº eval ©R¥O¨ÓÅý shell °õ¦æ ssh-agent Åã¥Üªº¿é¥X©R¥O¡G
[offsite]$ eval `ssh-agent` Agent pid 14198 |
¡@¡@eval ©R¥O§i¶D shell ¥hµû»ù¡]°õ¦æ¡^ssh-agent µ{¦¡¥Í¦¨ªº©R¥O¡C½T«O±z«ü©wªº¬O¤Ï¤Þ¸¹¡]`¡^¦Ó¤£¬O³æ¤Þ¸¹¡I°õ¦æ«á¡Aeval `ssh-agent` »y¥y±Nªð¦^¥N²zªº¶iµ{¼ÐÃѲšC¦b¹õ«á¡ASSH_AUTH_SOCK ©M SSH_AGENT_PID shell ÅܼƤw¸g³Q¾É¥X¦Ó¥i¥H¨Ï¥Î¡C±z¥i¥H±N¥¦ÌÅã¥Ü¦b shell ±±¨î¥x¤¤¨Ó¬d¬Ý¥¦ÌªºÈ¡G
[offsite]$ echo $SSH_AUTH_SOCK /tmp/ssh-XX7bhIwq/agent.14197 |
¡@¡@$SSH_AUTH_SOCK ¡]SSH Authentication Socket ªºÁY¼g¡^¬O¤@Ó¥»¦a®M±µ¦rªº¦ì¸m¡AÀ³¥Îµ{¦¡¥i¥H³q¹L¥¦¨Ó»P ssh-agent ³q«H¡C±N eval `ssh-agent` »y¥y¥[¤J¨ì±zªº ~/.bash_profile ¤å¥ó¥H½T«O SSH_AUTH_SOCK ©M SSH_AGENT_PID ©l²×³Qµù¥U¡C ssh-agent ²{¦b´N¤w¸g¦¨¬°¤@Ó«á»O¶iµ{¡A¥i¥H¥Î top ©M ps ©R¥O¬d¬Ý±o¨ì¡C
¡@¡@²{¦b§ÚÌ´N¤w¸g¥i¥H¨Ï¥Î ssh-agent ¦@¥Î§Ú̪º±K½X¡C¬°¦¹¡A§ÚÌ¥²¶·¨Ï¥Î¤@Ó¦W¬° ssh-add ªºµ{¦¡¡A³oÓµ{¦¡±N§Ú̪º±K½X²K¥[¡]µo°e¡^¨ì¹B¦æµÛªº ssh-agent µ{¦¡¡C
¡@¡@²M³æ 8. ¥Î©ó§K±K½Xµn¿ýªº ssh-add
[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)
|
¡@¡@²{¦b¡A·í§Ú̳X°Ý server1 ®É¡A¤£·|¦A³Q´£¥Ü¿é¤J±K½X¡G [offsite]$ ssh accountname@server1.com [server1]$ exit
¡@¡@¦pªG±zÁÙ¤£¬Û«H¡A¨º»ò¹Á¸Õ¥h±¼¡]kill -9¡^ssh-agent ¶iµ{¡AµM«á«·s³s±µ server1¡C³o¤@¦¸¡A±z±Nª`·N¨ì¡Aserver1 ±N·|¸ß°Ý¦sÀx¦b
.ssh ¥Ø¿ý¤U id_dsa ¤¤ªº¨pÆ_ªº±K½X¡G
[offsite]$ kill -9 $SSH_AGENT_PID
[offsite]$ ssh accountname@server1.com
Enter passphrase for key '/home/accountname/.ssh/id_dsa':
|
¡@¡@¨Ï¥Î keychain ²¤Æ±KÆ_³X°Ý
¡@¡@¨ì²{¦b¬°¤î¡A§Ṳ́w¸g¤F¸Ñ¤F´XÓ OpenSSH µ{¦¡¡]ssh¡Bscp¡Bssh-agent ©M ssh-add¡^¡A¦Ó¥B§Ṳ́w¸g³Ð«Ø¨Ã¦w¸Ë¤F¨pÆ_©M¤½Æ_¨Ó±Ò¥Î¤@Ó¦w¥þ¦Ó¥B¦Û°Êªºµn¿ý¹Lµ{¡C±z¥i¯à¤w¸g·NÃѨì¡A¤j³¡¤À³]¸m¤u§@¥u»Ýn¶i¦æ¤@¦¸¡C¨Ò¦p¡A³Ð«Ø±KÆ_¡B¦w¸Ë±KÆ_¡B³q¹L .bash_profile °õ¦æ ssh-agent ªº¹Lµ{¦b¨C¥x¾÷¾¹¥u»Ýn¶i¦æ¤@¦¸¡C¨º¯u¬O¦n®ø®§¡C
¡@¡@¤£¤Ó²z·Qªº®ø®§¬O¡A§Ų́C¦¸µn¿ý¨ìÂ÷½uªº¾÷¾¹¤W®É¡A³£¥²¶·½Õ¥Î ssh-add¡A¦Ó¥B¡Assh-agent »P§Ú̱Nn¥Î¨Ó¦Û°Ê¤Æ³Æ¥÷¤u§@ªº cron ½Õ«×¶iµ{¨Ã¤£ª½±µ¬Û®e¡Ccron ¶iµ{¤£¯à»P ssh-agent ³q«Hªºì¦]¬O¡Acron §@·~¬O§@¬° cron ªº¤l¶iµ{¨Ó°õ¦æ¡A³o¼Ë¥¦Ì´N¤£·|Ä~©Ó $SSH_AUTH_SOCK shell ÅܼơC
¡@¡@©¯¹Bªº¬O¡A¦³¤@ӸѨM¤è®×¤£¦ý¥i¥H®ø°£ ssh-agent ©M ssh-add ªº§½¡A¦Ó¥B¥i¥HÅý§Ų́ϥΠcron ¨Ó¦Û°Ê¶i¦æ¦UºØ»Ýn¹ï¨ä¥L¾÷¾¹¶i¦æ¦w¥þ¦aµL±K½X³X°Ýªº¹Lµ{¡C¦b¥L 2001 ¦~µoªíªº¤T½g developerWorks ¨t¦C¤å³¹¤¤¡A§Y OpenSSH key management¡ADaniel Robbins ¤¶²Ð¤F¤@Ó¦W¬° keychain ªº shell ¸}¥»¡A¥¦¬O ssh-add ©M ssh-agent ªº¤@Ó«eºÝ¡A²¤Æ¤F¾ãÓµL±K½Xªº¹Lµ{¡CÀHµÛ®É¶¡ªº¹L¥h¡Akeychain ¸}¥»¤w¸g¸g¾ú¤F«Ü¦h§ï¶i¡A²{¦b¥Ñ Aron Griffis ºûÅ@¡A¨ä³Ì·sªº 2.3.2-1 µo§Gª©¥»¤½¥¬©ó 2004 ¦~ 6 ¤ë 17 ¤é¡C
¡@¡@keychain shell ¸}¥»¤Óªø¥HP¤_µLªk¦b¥»¤å¤¤¦C¥X¡A¦]¬°ºë¤ß½s¼gªº¸}¥»¤¤¥]¬A¤F«Ü¦h¿ù»~ÀË´ú¡BÂ×´Iªº¤åÀÉ¥H¤Î«D±`¦hªº¸ó¥»O¥N½X¡C¤£¹L¡Akeychain ¥i¥H¦Û¶µ¥Øªº Web ¯¸ÂI¤W¤è«K¦a¤U¸ü±o¨ì¡C
¡@¡@¤U¸ü¨Ã¦w¸Ë¤F keychain «á¡A¨Ï¥Î¥¦´N«Ü²³æ¤F¡C¥u»Ýnµn¿ý¨ì¨C¥x¾÷¾¹¨Ã±N¤U±¨â¦æ²K¥[¨ì¨CÓ .bash_profile ¤å¥ó¡G keychain id_dsa . ~/.keychain/$HOSTNAME-sh
¡@¡@¦b±z²Ä¤@¦¸«·sµn¿ý¨ì¨C¥x¾÷¾¹®É¡Akeychain ±N¦V±z¸ß°Ý±K½X¡C¤£¹L¡A°£«D¾÷¾¹³Q«·s±Ò°Ê¡A§_«h¡A¥H«á¦Aµn¿ý®É¡Akeychain ±N¤£·|¦An¨D±z«·s¿é¤J±K½X¡C³Ì¦nªº¬O¡Acron ¥ô°È²{¦b¥i¥H¨Ï¥Î OpenSSH ©R¥O¨Ó¦w¥þ¦a³X°Ý»·µ{ªº¾÷¾¹¡A¦Ó¤£»Ýn¥æ¤¬¦a¨Ï¥Î±K½X¡C§ó¦nªº¦w¥þ©M§ó®e©öªº¨Ï¥Î¡A²{¦b§Ṳ́w¸gݱo¡C
¡@¡@²M³æ 9. ¦b¨C¥x¾÷¾¹¤Wªì©l¤Æ
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) |
¡@¡@¸}¥»¤Æ³Æ¥÷¹Lµ{
¡@¡@§Ú̪º¤U¤@Ó¥ô°È¬O³Ð«Ø°õ¦æ¥²nªº³Æ¥÷¹Lµ{ªº shell ¸}¥»¡C¥Ø¼Ð¬O°õ¦æ¦øªA¾¹ 1 ©M 2 ªº§¹¥þ¼Æ¾Ú®w³Æ¥÷¡C¦b§Ú̪º¨Ò¤l¤¤¡A¨CÓ¦øªA¾¹³£¹B¦æµÛ MySQL ¼Æ¾Ú®w¦øªA¾¹¡A§Ų́ϥΠmysqldump ©R¥O¦æ¤u¨ã¨Ó±N¤@¨Ç¼Æ¾Ú®wªí¾É¥X¨ì¤@Ó SQL ¿é¤J¤å¥ó¤¤¡C
¡@¡@²M³æ 10. ¦øªA¾¹ 1 ªº dbbackup.sh shell ¸}¥»
#!/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 |
¡@¡@¦b¦øªA¾¹ 2 ¤W¡A§Ú̱N³]¸m¤@ÓÃþ¦üªº¸}¥»¨Ó³Æ¥÷¯¸ÂI¼Æ¾Ú®w¤¤µ¹¥Xªº¿W¦³ªí³æ¡C¨CÓ¸}¥»³£³q¹L¤U±ªº¨BÆJ¼Ð°O¬°¥i°õ¦æªº¡G [server1]:$ chmod +x dbbackup.sh
¡@¡@¦b¦øªA¾¹ 1 ©M 2 ¤W³]¸m¤F dbbackup.sh «á¡A§Ú̪ð¦^¨ìÂ÷½uªº¼Æ¾Ú¦øªA¾¹¡A¦b¨ºùاÚ̱N³Ð«Ø¤@Ó shell ¸}¥»¨Ó½Õ¥Î¦UÓ»·µ{ dbbackup.sh ¸}¥»¨ÃÀH«á¶Ç¿éÀ£ÁYªº¡].tgz¡^¸ê®ÆÀɮסC
¡@¡@²M³æ 11. ¥Î¦bÂ÷½uªº¼Æ¾Ú¦øªA¾¹¤Wªº backup_remote_servers.sh shell ¸}¥»
#!/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 ©R¥O¨Ó°õ¦æ»·µ{¦øªA¾¹¤Wªº¸}¥»¡C¥Ñ©ó§Ṳ́w¸g³]¸mªºµL±K½Xªº³X°Ý¡Assh ©R¥O¥i¥H³q¹LÂ÷½uªº¦øªA¾¹¦b¦øªA¾¹ 1 ©M 2 ¤W»·µ{¦a°õ¦æ©R¥O¡C·PÁ keychain¡A¾ãÓ»{ÃÒ¹Lµ{²{¦b¥i¥H¦Û°Ê§¹¦¨¡C
¡@¡@½Õ«×
¡@¡@§Ú̪º¤U¤@Ó¨BÆJ¡A¤]¬O³Ì«á¤@Ó¨BÆJ¡A¬O½Õ«× backup_remote_servers.sh shell ¸}¥»¦bÂ÷½uªº¼Æ¾Ú¦sÀx¦øªA¾¹¤Wªº°õ¦æ¡C§Ú̱N¦V cron ½Õ«×¦øªA¾¹¤¤²K¥[¨âÓ±ø¥Ø¡A¥Hn¨D¨C¤Ñ°õ¦æ³Æ¥÷¸}¥»¨â¦¸¡A3:34 °õ¦æ¤@¦¸¡A8:34 ¦A°õ¦æ¤@¦¸¡C¦bÂ÷½uªº¦øªA¾¹¤W¨Ï¥Î edit¡]-e¡^¿ï¶µ½Õ¥Î crontab µ{¦¡¡C [offsite]:$ crontab -e
¡@¡@crontab ½Õ¥Î VISUAL ©Î EDITOR shell Àô¹ÒÅܼƩҫü©wªºÀq»{ªº½s¿è¾¹¡CµM«á¡A¿é¤J¨âÓ±ø¥Ø¨Ã«O¦s©MÃö³¬¤å¥ó¡C
¡@¡@²M³æ 12. Â÷½uªº¦øªA¾¹¤Wªº Crontab ±ø¥Ø 34 3 * * * /home/backups/remote_db_backup.sh 34 20 * * * /home/backups/remote_db_backup.sh
¡@¡@¤@Ó crontab ¦æ¥]¬A¨âÓ¥Dn³¡¤À¡A®É¶¡ªí³¡¤À©M«á±ªº©R¥O³¡¤À¡C®É¶¡ªí¤À¬°¦hÓ°ì¡A¥Î¨Ó«ü©w¤@Ó©R¥OÀ³¸Ó¦ó®É°õ¦æ¡G
¡@¡@²M³æ 13. Crontab ®æ¦¡
+---- minute
| +----- hour
| | +------ day of the month
| | | +------ month
| | | | +---- day of the week
| | | | | +-- command to execute
| | | | | |
34 3 * * * /home/backups/remote_db_backup.sh
|
¡@¡@ÀËÅç±zªº³Æ¥÷
¡@¡@±zÀ³¸Ó¹ï³Æ¥÷¶i¦æ¨Ò¦æ¦aÀˬd¡A¥H½T«Oµ{¦¡¥¿½T¶i¦æ¡C¦Û°Êµ{¦¡¥i¥H¨Ï·Ðº¾ªº¤u§@±o¨ìÁ×§K¡A¦ý¬O¥Ã»·¤£¯à¦]¦¹¦ÓÃi´k¡C¦pªG±zªº¼Æ¾Úȱo³Æ¥÷¡A¨º»ò¥¦¤]ȱo±z®É±`¶i¦æ©â¼ËÀˬd¡C
¡@¡@¦Ò¼{²K¥[¤@Ó cron §@·~¨Ó´£¿ô±z¦Û¤v¦Ü¤Ö¨CÓ¤ë¹ï³Æ¥÷¶i¦æ¤@¦¸Àˬd¡C¥t¥~¡A¸g±`×§ï¦w¥þ±KÆ_¤]¬O¤@Ó¦n¥D·N¡A¦P¼Ë±z¤]¥i¥H½Õ«×¤@Ó cron §@·~¨Ó´£¿ô±z°µ³o¥ó¨Æ¡C
¡@¡@¥t¥~ªº¦w¥þ¨¾½d
¡@¡@nÀò±o§ó°ªªº¦w¥þ©Ê¡A¥i¥H¦Ò¼{¦b¨C¥x¾÷¾¹¤W¦w¸Ë¨Ã°t¸m¤@Ó¤J«IÀË´ú¨t²Î¡]ntrusion Detection System¡AIDS¡^¡A¤ñ¦p Snort¡C¥i¥H¹w¨£¡A·í¤J«I¥¿¦bµo¥Í©ÎªÌªñ´Áµo¥Í¹L®É¡AIDS ±N·|³qª¾±z¡CIDS ¨ì¦ì«á¡A±z±N¥i¥H²K¥[¨ä¥L¼h¦¸¤Wªº¦w¥þ¡A¤ñ¦p¹ï±zªº³Æ¥÷¶i¦æ¼Æ¦rñ¦W©M¥[±K¡C
¡@¡@GNU Privacy Guard¡]GnuPG¡^¡BOpenSSL ©M ncrypt µ¥¬y¦æªº¶}©ñ·½¥N½X¤u¨ã¥i¥H¤ä´©³q¹L shell ¸}¥»¹ï¦sÀɤå¥ó¶i¦æ¥[±K¡A¤£¹L¤£«ØÄ³¦b¨S¦³ IDS ´£¨ÑªºÃB¥~¼h¦¸«OÅ@ªº±¡ªp¤U³o¼Ë°µ¡C
¡@¡@µ²§ô»y
¡@¡@¥»¤å¦V±z®i¥Ü¤F¦p¦óÅý±zªº¸}¥»¦b»·µ{¦øªA¾¹°õ¦æ¥H¤Î¦p¦ó°õ¦æ¦w¥þ¦Û°Êªº¤å¥ó¶Ç¿é¡C§Ú§Æ±æ±z¯à¥Ñ¦¹±o¨ìÆF·P¦Ó¶}©l¦Ò¼{«OÅ@±z¦Û¤vªº«n¼Æ¾Ú¡A¨Ã¨Ï¥Î OpenSSH ©M Snort µ¥¶}©ñ·½¥N½X¤u¨ã¨Óºc«Ø·sªº¸Ñ¨M¤è®×¡C
¡]³d¥ô½s¿è¡G¶³¤l¡^
|