����w���A���@�A��s�峹�аѦ��o��

���@�������A����²�檺�覡���O�]�h������A���e���n�J�A�ӬO�z�L���ݳs�u���A���s�u�\��ӵn�J�D���A �M��A�Ӷi���L�����S�����@�N�O�F�CLinux �D���X�G���|���� sshd �o�ӳs�u�A�ȡA�ӥB�o�ӪA���٬O�D�ʶi���ƥ[�K���I �T���b�����W���]�w���h�F�C�P�ɧڭ��ٯ�z�L rsync �o�ӫ��O�H sshd �q�D�ӹF�����a��Ƴƴ����\����I�۷�����C �p�G�Q�n�Q�ιϧΤ����n�J�A����w�]�� Xdmcp �t�X VNC �N����ϥιϧΤ����b�������t�@�ݵn�J�A�����A���I �p�G�A�ߺD�ϥ� Windows �����ݮୱ�A���� XRDP �]���n��L�o�I

11.1 ���ݳs�u���A��
�@�@11.1.1 ����O���ݳs�u���A��
�@�@11.1.2 �����ǥi�ѵn�J�������H
11.2 ��r�����s�u���A���GSSH ���A��
�@�@11.2.1 �s�u�[�K�޳N²���G ���ͷs�����_
�@�@11.2.2 �Ұ� ssh �A��
�@�@11.2.3 ssh �Τ�ݳs�u�{�� - Linux �Τ��G ssh, ~/.ssh/known_hosts, sftp, scp
�@�@11.2.4 ssh �Τ�ݳs�u�{�� - Windows �Τ��G pietty, psftp, filezilla
�@�@11.2.5 sshd ���A���ӳ��]�w
�@�@11.2.6 �s�@���αK�X�i�ߧY�n�J�� ssh �Τ��G ssh-keygen
�@�@11.2.7 ²���w���]�w
11.3 �̭�l�ϧΤ����G Xdmcp �A�Ȫ��ҥ�
�@�@11.3.1 X Window �� Server/Client �[�c�P�U����
�@�@11.3.2 �]�w gdm �� XDMCP �A��
�@�@11.3.3 �Τ�t�ά� Linux ���n�J�覡�G Xnest
�@�@11.3.4 �Τ�t�ά� Windows ���n�J�覡�G Xming
11.4 ���R���ϧΤ����G VNC ���A��
�@�@11.4.1 �w�]�� VNC ���A���G�ϥ� twm window manager�G vncserver, vncpasswd
�@�@11.4.2 VNC ���Τ�ݳs�u�n���G vncviewer, realvnc
�@�@11.4.3 VNC �f�t������ Xdmcp �e��
�@�@11.4.4 �}���N�Ұ� VNC server ����k
�@�@11.4.5 �P�B�� VNC �G�i�H�z�L�ϥܦP�B�о�
11.5 ���������ݮୱ�t�ΡG XRDP ���A��
11.6 SSH ���A�����i������
�@�@11.6.1 �Ұ� ssh �b�D���W��f (�D port 22)
�@�@11.6.2 �H rsync �i��P�B��۳ƥ�
�@�@11.6.3 �z�L ssh �q�D�[�K�쥻�L�[�K���A��
�@�@11.6.4 �H ssh �q�D�t�X X server �ǻ��ϧΤ���
11.7 ���I�^�U
11.8 �ҫ�m��
11.9 �ѦҸ�ƻP�����\Ū
11.10�w�糧�媺��ij�Ghttp://phorum.vbird.org/viewtopic.php?p=114550

11.1 ���ݳs�u���A��

���ݳs�u���A����ڭ̨ӻ��A�i�O�@���ܦ��Ϊ��u��ڡI�L�i�H���ڭ̧��K���޲z�D���C ���L�A��K�k��K�A���}����@�ɳ��i�H���յn�J�A���D���ä��Ӧn�D�N�A�]���i��|���w���ʪ����D�o�I �ҥH�����~�n�S�O�j�դ@�U�o�Ӫ��N��ڡI


11.1.1 ����O���ݳs�u���A��

�����A�ڭ̨��A�Ѥ@�U�A����O�y���ݳs�u���A���z�H �o�ӪF�誺�\�ର��H�ڷQ�A�A���Ӥw�gť�L�A�@���}�����ں����W�����A���A�򥻤W�A���i�H���ݭn�ù��B��L�B �ƹ��������P��t�ơA�u�n���򥻪��D���O�BCPU�BRAM�B�w�ЦA�[�W�@���n�@�I�������d�A�åB�s�W���ں����A ���o���D���N������ѧA���ݭn�������A�ȤF�C���p�G�A�ݭn���s�]�w�o���D���A�Ӧp��n�J�D�����o���� bash �������Ӿ��a�P�i��ק�O�H���N�o�n�z�L�s�u���A�����A�ȤF�C

�O���I�A�q��աA���ݳs�u���A���b���ѧA�ѻ��ݳz�L��r�ιϧΤ������覡�ӵn�J�t�ΡA ���A�b���ݪ��u�@���e���n�J Linux �D���H���o�i�ޱ��D�������� (shell)�A�ӵn�J�᪺�ާ@�Pı�W�N�����b�t�Ϋe���@���I �ҥH�աA�A���M���ݭn���ݺ������A������L�B�ƹ��B�ù������C�A�u�n�u�@���i�H���`�s�u�컷�ݥD���Y�i�ڡC

�H�����ӤH���ҡA�ثe�����޲z�Q�X���� Unix-Like �D���A�o�ǥD��������b�P�@�Ӧa��A���G�b�n�x�W�U�B�I ��������s���n�骺�|�}�Q�o�G�A�Ϊ̬O�ݭn�i��@���B�~���]�w���ɭԡA�O�_�������H�@�w�n��{���ܡH���M���ݭn�A �u�n�z�L�����s�u��ӥD���W���A�N�i�H�i�����u�@�F�I�u���N�n���b�D���e���u�@�@�몺���P�r�֡I ^_^�I�o�N�O���ݳs�u���A���աI

�ܦh�H�|���A�ڥ� FTP �]�n��J�b���K�X�ӵn�J�ڡH���P�o�ӳ��`�ͨ쪺�n�J���󤣦P�H�̤j�����P�b����o�� shell ��i�檺�u�@�աI�� ssh/telnet/VNC ���覡���o����r�ιϧ� shell ����i��ܦh�t�κ޲z�����ȡA�P��ª� FTP ��i�檺�u�@���M���P�I

���A���u�@�ݭn�ϥΨ� Linux �j�j���{���y���sĶ�\��ɡA����A�@�w�ݭn Linux ��a�I�ӥB�̦n�O�B��t�ק֤@�I���D���A �o�ӮɭԧA�i�H�N�A��s�dz̧֪����@���D���}��X�ӡA�]�w�@�U���ݳs�u���A���A���A���ǥͰաA�Ϊ̬O��s�Ǫ��P���աA �i�H�z�L�o���������L�̶i���s���u�@�A�o�ӮɭԡA�A���D���N�i�H���h�H�i����� Linux �B�⪺�\��աI

�|�Ҩӻ��A�����P�X�s�٦����a�j�Ǫ��Ѯv�B�P�ǭ̲իؤF�@�զ��A�����Ū��O���[�c�q�� (PC cluster)�A �ثe�ڭ̦b�ӹq���W���] MM5 �BModels3 ���j��P�Ů�~��Ҧ��A�n�b�o�˪��[�c���U�]�ƭȼҦ�����]�A �D�n�N�O�Ҷq�B���O�C���|�ϥΨ�Ӳչq�������n�h�H�A���D�j�a���b���b�@���ù��e���u�@�H���M���ݭn�աI �o�ɭԴN�O���ݳs�u���A�����A�Ƚd���o�I

���O�_�C�@���s�� Internet �W�����D�������ӭn�}�񻷺ݳs�u���\��O�H���ä��ɵM�A �٬O�ݭn�w��A���D���Ӷi��W�����A�ڭ̩��U�����A���P�u�@���ӻ����G

�b�@�����ں����}��A�Ȫ����A�����A�ѩ�}�񪺪A�ȥi��|���������n����T�A�ӻ��ݳs�u�{���s�i�D������A �i�H�i�檺�u�@�S�Ӧh�F(�X�G�N���b�D���e���u�@�@��I)�A�]�����A�������ݳs�u�{���q�`�Ȱw��ֳ����t�κ��@�̶}��Ӥw�I ���D���n�A�_�h Server �������D���ٯu������ij�}��s�u���A�ȩO�I

�H�������ҡA�ڪ��D�����ѤF�ڭ̬�s�Ǩϥ� Mail �P Internet �W���� WWW �A�ȡA�p�G�٥D�ʴ��ѻ��ݳs�u���ܡA ����U�@���p�߳Q�J�I�A���i�N�˸����F�I�]���A�����ȶ}��y�ܤp����������z���t�κ޲z���s�i�ӡA ��L�ӷ��� IP �@�ߩ�סI���\�ϥλ��ݳs�u���\��O�I

�ҿת��u�@���N�O�����Ѻ��ں����A�Ȫ��D���A�ȴ��Ѥj�q���B���O���ϥΪ̡C �J�M�����Ѻ��ں������A�ȡA���A�ٶ}�s�u���A���F���H���O�աI���e���������쪺 PC cluster �j�q�B�⪺��չq���A �]�i�H�٤����u�@���A�]�����S�����ѱ`���������A�ȹ��I���L�����n���ѵ��ϥΪ̵n�J���v���A�o�ˤj�a�~�Ϊ���B��\��ڡI ���ɧA�N�o�n�w�鷺���A�Ϊ̬O�S�w���Y�Ǩӷ��}��L�̨ϥΧA���u�@���o�I


11.1.2 �����ǥi�ѵn�J�������H

����ثe���ݳs�u���A�����D�n���������ǡH�p�G�H�n�J���s�u�����Ӥ����A�򥻤W����r�����P�ϧΤ�����ءG

�b��r�����n�J���s�u���A���A�D�n���H�y���X�z�ǰe��ƪ� telnet ���A���A�ΥH�[�K�޳N�i���ƥ[�K�A�ǰe�� SSH ���A���I���M telnet �i�H�䴩���Τ�ݳn�����h�A���L�ѩ󥦬O�ϥΩ��X�Ӷǰe��ơA�A����ƫܮe���D�즳�ߤH�h���^���I �ҥH��ӧڭ̳��I�~�j�a�h�ϥ� SSH �o�@�سs�u�覡

�ܩ�ϧΤ������s�u���A���A���²�檺�� Xdmcp (X Display Manager Control Protocol)�A�[�] Xdmcp ��²��A ���L�Τ�ݪ��n�����֡C�t�~�@�ڥثe�ܱ`�����ϧγs�u���A���A�N�O VNC (Virtual Network Computing)�A �z�L VNC server/client �n��Ӷi��s���C�p�G�A�Q�n�ϥ����� Windows �����ݮୱ�s�u�A�ӥ\��ϥΪ��O RDP (Remote Desktop Protocol)�A���A�i�o�n�[�] RDP ���A���~��C

�ϧΤ����̤j���u�I�O�y�ϧΡz�ڡI���L�A�]���O�z�L�ϧΨӶǰe�A�ǿ骺��ƶq�۷����j�A �ҥH�t�׻P�w���ʳ����ݦҶq�C�]���A�ڭ̶ȫ�ij�A�N�ϧΤ��������ݵn�J���A���}��b�������� (LAN) �N�n�F�I

����O�y���X�z�P�y�[�K�z����ƫʥ]�ǰe�Ҧ��O�H������ telnet �ϥΩ��X�N������w���H�ҿת����X�N�O�G �y���ڭ̪���ƫʥ]�b�����W�ǿ�ɡA�Ӹ�ƫʥ]�����e����ƪ���l�榡�z�A �]�N�O���A�A�ϥ� telnet �n�J���ݥD���ɡA���O�o�n��J�b���K�X�ܡH���A���b���K�X�O�H�쥻����Ʈ榡�ǿ�A �ҥH�p�G�Q���� tcpdump ��������ť�n���^����ơA ���A���b�K�N���i��Q�Ѩ��աI

�ҥH�աA�U�@�A����ƫʥ]�̭��t���H�Υd��ơB�K�X�B�����T�{�����n��T�ɡA�O�_�ܦM�I�o�H �]���A�ثe�ڭ̳q�`���Ʊ�ϥΥi�H�N�o�Ǧb�����W���]����ƥ[�K���޳N�A�H�W�[��Ʀb Internet �W���ǰe���w���ʰڡI

�� ssh ����w���A���O�z�L ssh �q�D�ǿ�T���ɡA�ӰT���b�����W������w���A�]����ƬO�[�K�L���A�Y�ϳQ�Ѩ��A ���i��]���|���D��Ƥ��e����A�]����T����w���C���o���N�� ssh �o�ӳq�T��w�N����w����I��̷N�q���P�I

�ѩ���X�ǿ骺 telnet, rsh ���s�u���A���w�g�Q ssh ���N�A�åB�b�@�ǹ�����ΤW�w�g�ܤ֬ݨ� telnet �P rsh �F�A �]�������b��r�����W�ۭ��󤶲� ssh �����ΡA�]�A�H rsync �ǥ� ssh �q�D�Ӷi�沧�a�ƴ������ȵ����C�ܩ�ϧΤ����h�|���� Xdmcp, VNC �P RDP ��I�]���ܦh�u�@���ϥΪ̻ݭn��ܥL�̦b�u�@����@�᪺�ϧΧe�{�A�]���o�����]�O�ܭ��n���O�I


11.2 ��r�����s�u���A���G SSH ���A��

�ѩ���e�����ݳs�u���A���j�h�O���X�A�ӥB��w�]���Ǹ�w���D�A�]����ӴN�� SSH �o�Ө�w�Ө��N�W�z�o�ǩN�N�C ���� SSH �O����O�H��������S���\��H²�檺�ӻ��ASSH �O Secure SHell protocol ��²�g (�w�����ߵ{����w)�A���i�H�z�L��ƫʥ]�[�K�޳N�A�N���ݶǿ骺�ʥ]�[�K��A�ǿ������W�A �]���A��ưT�����M�N����w���o�I�o�� SSH �i�H�ΨӨ��N�����w���� finger, R Shell (rcp, rlogin, rsh ��), talk �� telnet ���s�u�Ҧ��C���U�ڭ̱N��²���@�U SSH ���s�u�Ҧ��A�ӻ��������� SSH ����ưT���|����w���O�I

�S�O�`�N�G�o�� SSH ��w�A�b�w�]�����A���A�����N���Ѩ�Ӧ��A���\��G

  1. �@�ӴN�O���� telnet �����ݳs�u�ϥ� shell �����A���A��Y�O�U�٪� ssh �F
  2. �t�@�ӴN�O���� FTP �A�Ȫ� sftp-server �I���ѧ�w���� FTP �A�ȡC


11.2.1 �s�u�[�K�޳N²��

����O�y��ƥ[�K�z�O�H²�檺���A�N�O�N�H�̬ݪ����o��l�q�l��ơA�g�L�@�ǹB��A���o�Ǹ���ܦ��S���N�q���ýX (�ܤֹ�H���ӻ�)�A�M��A���o�өN�N�b�����W���ǿ�A�ӷ��ϥΪ̷Q�n�d�\�o�Ӹ�ƮɡA�A�z�L�ѱK�B��A �N�o�ǩN�N�ϱ��X��l���q�l��ơC�ѩ�o�Ǹ�Ƥw�g�Q���s�B�z�L�A�ҥH�A�Y�ϸ�Ʀb���ں����W�Q cracker ��ť���Ѩ��A�L�̤]���e���N����o�X�ӭ�l��Ƥ��e���C

�����`�`���A�[�K����I���O��ӤH���������P�y��ܰաI�p�G�A��A���B�ͬ��w�n�ϥΧA�̨�q���Y�دS�O�y���A �o�ӻy���u��A�̨�Ӧ��N�q�C������A�̨�H���ܮɡA�b���䪺�Hť�쪺�u�O�@��S���N�q���n���A�]���L��ť�����ڡI �Y�ϸ��H�N�A���n�����U�ӡA�u�n�L�����D�A�̪��S���λy�A���L�N���i���A�ѧA�̹�ܪ����e�o�C

�[�ѱK�B�⪺����P�޳N�D�`�h�A�ڭ̳o�̤��h�Q�׽������z�װ��D�A�u�͹�ڭ̤���������@�ǥ[�ѱK�����Ӥw�C �ثe�`���������ʥ]�[�K�޳N�q�`�O�ǥѩҿת��y�D��٪��_�t���z�ӳB�z���C �D�n�O�z�L��⤣�@�˪����_�P�p�_ (Public and Private Key) �զX�����@��W�@�L�G�����_ (key pair) ��A �Q�γo����_�Ӷi���ƪ��[�ѱK�u�@�C���o����_�ͫ��Ӫ��O�H

�ҥH�j�a���ݪ��줽�_�A���O�p�_�o�O�H���B�ⲣ�ͪ��A�ӥΤ�ݲ��ͨp�_�öi�@�B�զX�����_��A ���ɦ��A���P�Τ�ݨ��䧡���o����_�C����ƭn�i��ǰe���ɭԡA�t�η|�ϥΤ��_�Ӷi��[�K�A�������ݦ���K�X��A �t�η|�ϥΨp�_�Ӷi��ѱK�C�ѩ�b Internet �W���]����ƬO�[�K�L�᪺�A�ҥH�A����Ƥ��e���M�N����w���աI

���_�P�p�_�b�i���ƶǿ�ɪ�����ܷN��
�� 11.2-1�B���_�P�p�_�b�i���ƶǿ�ɪ�����ܷN��
��ƥ[�K���޳N�u���۷����h�A�]�U�����u���I�A�����B��t�ק֡A���O�����w���F�������w���A���O�[�K/�ѱK���t�׸��C�� �ثe�b SSH �ϥΤW�A�D�n�O�Q�� RSA/DSA/Diffie-Hellman �������I

�ثe SSH ����w��������ءA���O�O version 1 �P version 2 �A�䤤 V2 �ѩ�[�W�F�s�u�˴�������A �i�H�קK�s�u�����Q���J�c�N�������X�A�]���� V1 �٭n��[���w���C�ҥH�o�A�кɶq�ϥ� V2 �����Y�i�A���n�ϥ� V1 �o�C �L�׬O���ت����A���٬O�ݭn���p�_�[�K�t�Ϊ��A����o�Ǥ��_�P�p�_�O�p�󲣥ͪ��O�H���U�ڭ̴N�ӽͤ@�ͰաI

�ڭ̥i�H�N ssh ���A���ݻP�Τ�ݪ��s�u�B�J�ܷN���U�ϡA�ܩ�B�J�����p��G

ssh ���A���ݻP�Τ�ݪ��s�u�B�J�ܷN��
�� 11.2-2�Bssh ���A���ݻP�Τ�ݪ��s�u�B�J�ܷN��
  1. ���A���إߤ��_���G �C�@���Ұ� sshd �A�ȮɡA�ӪA�ȷ|�D�ʥh�� /etc/ssh/ssh_host* ���ɮסA�Y�t�έ��w�˧����ɡA�ѩ�S���o�Ǥ��_�ɮסA�]�� sshd �|�D�ʥh�p��X�o�ǻݭn�����_�ɮסA�P�ɤ]�|�p��X���A���ۤv�ݭn���p�_��(�Ω�Ĥ��B�J)�F

  2. �Τ�ݥD�ʳs�u�n�D�G �Y�Τ�ݷQ�n�s�u�� ssh ���A���A�h�ݭn�ϥξA�����Τ�ݵ{���ӳs�u�A�]�A ssh, pietty ���Τ�ݵ{���F

  3. ���A���ǰe���_�ɵ��Τ���G ������Τ�ݪ��n�D��A���A���K�N�Ĥ@�ӨB�J���o�����_�ɮ׶ǰe���Τ�ݨϥ� (�������O���X�ǰe)�F

  4. �Τ�ݰO��/�����A�������_��Ƥ��H���p��p�_�G �Y�Τ�ݲĤ@���s���즹���A���A�h�|�N���_��ưO����Τ�ݪ��ϥΪ̮a�ؿ����� ~/.ssh/known_hosts �C�Y�O�w�g�O���L�Ӧ��A�������_��ơA�h�Τ�ݷ|�h��惡�������쪺�P���e���O���O�_���t���C�Y���������_��ơA �h�}�l�p��p�_��ơF

  5. �^�Ǩp�_��ƨ���A�����G �z�L�e�@�ӨB�J���o�����_�i��[�K�A�N�o���s�u�p��ұo���p�_��ƥ[�K�ǰe����A���A ���ɥѥΤ�ݶǰe����A���ݪ���ƬO�[�K���I�Ӧ��A���ݫh�z�L�ۤv���p�_�Ӷi��ѱK�C���ɪ��[�K���ӬO��V���A ��Y�ѥΤ�ݥ[�K�e�Ӫ���ƥu�����A������ѱK�A�����A���e�X�h����ƥΤ�ݬO����ѱK���A�]���èS���ѱK���p�_�C �]���e���� 1~4 �B�J�b���A���e��Τ�ݳo�Ӥ�V�A���ӳ��O���X�ǰe���F

  6. ���A�������p�_�A�}�l���V�[�ѱK�s�u�G ������A�������o��Τ�ݪ��p�_��A�~�O�z�L���_�t�ζi�����V�[�ѱK�F

�b�W�z���� 4 �B�J���A�Τ�ݪ��p�_�O�H���B�ⲣ�ͩ󥻦��s�u�������A�ҥH�A�o�����s�u�P�U�����s�u���p�_�i��N�|���@�˰աI ���~�b�Τ�ݪ��ϥΪ̮a�ؿ��U�� ~/.ssh/known_hosts �|�O�����g�s�u�L���D���� public key �A�ΥH�T�{�ڭ̬O�s���W���T���������A���C

���D�G
�p�󲣥ͷs�����A���ݪ� ssh ���_�P���A���ۤv�ϥΪ�����p�_�H (���G�`�N�A�����D���n�b�w�g���`�B�@���������A���W���A�]���i��|�y����L�Τ�ݪ��x�Z�I)
���G
�ѩ���A�����Ѫ����_�P�ۤv���p�_����m�� /etc/ssh/ssh_host* �A�]���A�i�H�o�˰��G
[root@www ~]# rm /etc/ssh/ssh_host*  <==�R�����_��
[root@www ~]# /etc/init.d/sshd restart
���b���� sshd:                         [  �T�w  ]
���b���� SSH1 RSA �D�����_:            [  �T�w  ] <==���U�T�ӨB�J���s���ͪ��_�I
���b���� SSH2 RSA �D�����_:            [  �T�w  ]
���b���� SSH2 DSA �D�����_:            [  �T�w  ]
���b�Ұ� sshd:                         [  �T�w  ]
[root@www ~]# date; ll /etc/ssh/ssh_host*
Mon Jul 25 11:36:12 CST 2011
-rw-------. 1 root root  668 Jul 25 11:35 /etc/ssh/ssh_host_dsa_key
-rw-r--r--. 1 root root  590 Jul 25 11:35 /etc/ssh/ssh_host_dsa_key.pub
-rw-------. 1 root root  963 Jul 25 11:35 /etc/ssh/ssh_host_key
-rw-r--r--. 1 root root  627 Jul 25 11:35 /etc/ssh/ssh_host_key.pub
-rw-------. 1 root root 1675 Jul 25 11:35 /etc/ssh/ssh_host_rsa_key
-rw-r--r--. 1 root root  382 Jul 25 11:35 /etc/ssh/ssh_host_rsa_key.pub
# �ݤ@�U�W����X������P�ɮת��إ߮ɶ��A���إߪ��s���_�B�p�_�t�ΡI


11.2.2 �Ұ� SSH �A��

�ƹ�W�A�b�ڭ̨ϥΪ� Linux �t�η����A�w�]�N�w�g�t�� SSH ���Ҧ��ݭn���n��F�I�o�]�t�F�i�H���ͱK�X����w�� OpenSSL �n��P OpenSSH �n�� (��1)�A�ҥH�O�A�n�Ұ� SSH �u���O��²��F�I�N�������L�ҰʴN�O�F�I���~�A�b�ثe�� Linux Distributions �����A���O�w�]�Ұ� SSH ���A�ҥH�@�I�����·СA�]�����Υh�]�w�A�L�N�w�g�ҰʤF�I �z�I�u�O�n�֡�L�צp��A�ڭ��٬O�o���@���o�ӱҰʪ��覡�a�I�����ҰʴN�O�H SSH daemon �A²�٬� sshd �ӱҰʪ��A�ҥH�A��ʥi�H�o�˱ҰʡG

[root@www ~]# /etc/init.d/sshd restart
[root@www ~]# netstat -tlnp | grep ssh
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address  Foreign Address  State   PID/Program name
tcp        0      0 :::22          :::*             LISTEN  1539/sshd

�ݭn�`�N���O�ASSH �������ѤF shell ���ڭ̨ϥΡA��Y�O ssh protocol ���D�n�ت��A�P�ɥ紣�ѤF�@�Ӹ����w���� FTP server �A��Y�O ssh-ftp server ���ڭ̷����O FTP �ӨϥΡI�ҥH�A�o�� sshd �i�H�P�ɴ��� shell �P ftp ��I�ӥB���O�[�c�b port 22 �W�����O�I�ҥH�A���U�ڭ̴N�Ӵ��@���A������˥� Client �ݳs���W Server �ݩO�H�P�ɡA�p��H FTP ���A�Ȩӳs���W Server �åB�ϥ� FTP ���\��O�H


11.2.3 ssh �Τ�ݳs�u�{�� - Linux �Τ�

�p�G�A���Τ�ݬO Linux ���ܡA���򮥳ߧA�F�A�w�]�����p�U�A�A���t�Τw�g�����U���Ҧ����O�A�i�H�����w���B�~���n���I ���U�N�Ӥ��Ф@�U�o�ǫ��O�a�I

SSH �b client �ݨϥΪ��O ssh �o�ӫ��O�A�o�ӫ��O�i�H���w�s�u������ (version1, version2)�A �٥i�H���w�D���W�� ssh port (���W ssh port �� 22)�C���L�A�@�몺�Ϊk�i�H�ϥΩ��U���覡�G

[root@www ~]# ssh [-f] [-o �Ѽƶ���] [-p �D���W��f] [�b��@]IP [���O]
�ﶵ�P�ѼơG
-f �G�ݭn�t�X�᭱�� [���O] �A���n�J���ݥD�������o�e�@�ӫ��O�L�h�Ӥw�F
-o �Ѽƶ��ءG�D�n���Ѽƶ��ئ��G
	ConnectTimeout=���� �G�s�u���ݪ����ơA��ֵ��ݪ��ɶ�
	StrictHostKeyChecking=[yes|no|ask]�G�w�]�O ask�A�Y�n�� public key
           �D�ʥ[�J known_hosts �A�h�i�H�]�w�� no �Y�i�C
-p �G�p�G�A�� sshd �A�ȱҰʦb�D���W����f (22)�A�ݨϥΦ����ءF
[���O] �G���n�J���ݥD���A�����o�e���O�L�h�C���P -f �N�q���ӬۦP�C

# 1. �����s�u�n�J����D������k (�H�n�J��������)�G
[root@www ~]# ssh 127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
RSA key fingerprint is eb:12:07:84:b9:3b:3f:e4:ad:ba:f1:85:41:fc:18:3b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts.
root@127.0.0.1's password: <==�b�o�̿�J root ���K�X�Y�i�I
Last login: Mon Jul 25 11:36:06 2011 from 192.168.1.101
[root@www ~]# exit  <==���}�o���� ssh �s�u
# �ѩ� ssh �᭱�S���[�W�b���A�]���w�]�ϥη��e���b���ӵn�J���ݦ��A��

�@��ϥ� ssh �n�J���ݥD���A���|��g�y ssh �b��@�D��IP �z���榡�A �N��O���A�ϥθӥD�����Y�b���n�J���N��C���O�ܦh�B�ͳ������w�g�b���A��Y�ϥΡy ssh �D��IP �z���榡�C �p�P�W�����d�ұ��p�C�n�`�N��A�p�G���g�b�����ܡA����|�H���a�ݹq�����b���ӹ��յn�J���ݡC �]�N�O���A�p�G��ݻP���ݨ㦳�ۦP���b���A���򤣼g�b���]�S�����Y�A�p�W�������d�ҡC���O�A���F�H��ߺD�۷Q�A �٬O�@�}�l�N�ϥ����� email ���覡�ӵn�J���ݥD���A�o�˪��欰�ߺD����n�աI

�W���X�{���T�����A�}�Y RSA ������᭱�����N�O���ݦ��A�������_�����X�A�p�G�T�w�ӫ����X�S�����D�A����A�N�o�n��J yes �ӱN�ӫ����X�g�J���A�����_�O���� (~/.ssh/known_hosts)�A�H��K���Ӥ��Ӧ��A�������T�ʤ��ΡC �`�N�O�n�g yes ��A��¿�J Y �� y �O���|�Q�����������~�A �ѩ�ӥD�������_�w�g�Q�O���A�]�����ӭ��ƨϥ� ssh �n�J���D���ɡA�N���|�X�{�o�ӫ����X���ܤF�C

# 2. �ϥ� student �b���n�J����
[root@www ~]# ssh student@127.0.0.1
student@127.0.0.1's password:
[student@www ~]$ exit
# �ѩ�[�J�b���A�]�������������� student �F�I�t�~�A�]�� 127.0.0.1 ���n�J�L�A
# �ҥH�N���|�A�X�{���ܧA�n�W�[�D�����_���T���o�I

# 3. �n�J���D������L���O��ߨ����}���覡�G
[root@www ~]# ssh student@127.0.0.1 find / &> ~/find1.log
student@localhost's password:
# ���ɧA�|�o�{���e���d���F�H�o�O�]���W�Y�����O�|�y���A�A�w�g�n�J���ݥD���A
# ���O���檺���O�|���]���A�]���A�|�b���ݷ����C���p����w�t�Φۤv�]�H

# 4. �P�W�D�ۦP�A���O�����D���ۤv�]�ӫ��O�A�A�ߨ�^���ݥD���~��u�@�G
[root@www ~]# ssh -f student@127.0.0.1 find / &> ~/find1.log
# ���ɧA�|�ߨ�n�X 127.0.0.1 �A�� find ���O�|�ۤv�b���ݦ��A���]��I

�W�z���d�ҷ����A�� 4 �ӽd�ҳ̦��ΡI�p�G�A�Q�n�����ݥD���i�����������O�A�p�G���[�W -f ���ѼơA ���A�|���ݹ��D�����������A�N�A��X�s�u�A�o������X�z�C�]���A�[�W -f �N�ܭ��n��]���A�|���w���ݥD���ۤv�]�����A �Ӥ��ݭn�b�Ūŵ��ݡC�Ҧp�G�yssh -f root@some_IP shutdown -h now �z���������O�o�C

# 5. �R���� known_hosts ��A���s�ϥ� root �s�u�쥻���A�B�۰ʥ[�W���_�O��
[root@www ~]# rm ~/.ssh/known_hosts
[root@www ~]# ssh -o StrictHostKeyChecking=no root@localhost
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
root@localhost's password:
# �p�W�ҥܡA���|�ݧA yes �� no �աI�����|�g�J ~/.ssh/known_hosts �����I

�����W�ұ`�`�ϥ� ssh �s�u��P�Ǫ��q���h�ݥL���S���X���A���ɭԷ|�g script �Ӷi�浪�װ����C ���ɦp�G�C�x�q�����b�D�ʥ[�W���_�ɰO���A���o�n��J�y yes �z�A�|�֦��I����[�W�o�� StrictHostKeyChecking=no �N�ܦ����U�աI�L�|���߰ݦ۰ʥ[�J�D�������_���ɮפ��A���@��ϥΪ����U���j�A���{���}���ӻ��A �o���N��i�N�ܤ����ΤF�I

���A�n�J���ݦ��A���ɡA�����|�D�ʪ��α����쪺���A���� public key �h��� ~/.ssh/known_hosts ���L���������_�A �M��i�橳�U���ʧ@�G

���M�����A���� ssh �q�`�i��|���ܡA���D�O�A�p�G�O���եΪ��D���A�]���`�`�b���s�w�ˡA������A�������_�֩w�g�`���P�A �G�u�p�����ܡA�A�N�L�k�~��n�J�F�I�����H���ڭ̨Ӽ����@�U�o�Ӧ欰�a�I���A������L�H�աI

���D�G
�������A�����s�w�˫�A���]���A���ϥάۦP�� IP �A�y���ۦP IP �����A�����_���P�A���ͪ����D�P�ѨM���D����H
���G
�Q�Ϋe�@�p�`���L���覡�A�R���즳���t�Τ��_�A���s�Ұ� ssh ���A�����_��s�G
rm  /etc/ssh/ssh_host*
/etc/init.d/sshd restart
�M�᭫�s�ϥΩ��U���覡�Ӷi��s�u���ʧ@�G
[root@www ~]# ssh root@localhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ <==�N�i�D�A�i�঳���D
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
a7:2e:58:51:9f:1b:02:64:56:ea:cb:9c:92:5e:79:f9.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1 <==�_���᭱�����Ʀr�N�O�����D��Ʀ渹
RSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.
�W�z������X�{�����~�T�����A�S���r�骺�a��b�i�D�A�G/root/.ssh/known_hosts ���� 1 ��A�̭������_�P�o�������쪺���G���P�A �ܥi��Q�����F�I�����H�S���Y�աI�ЧA�ϥ� vim �� /root/.ssh/known_hosts �A�ñN�� 1 ��(�_�� : �᭱�����Ʀr�N�O�F) �R���A����A���s ssh �L�A���t�ΤS�|���s�ݧA�n���n�[�W���_�o�I�N�o��²��I ^_^

ssh �O�n�J���ݦ��A���i��u�@�A���p�G�A�u�O�Q�n�q���ݦ��A���U���ΤW���ɮשO�H ���N���O�ϥ� ssh �աA�ӥ����n�ϥ� sftp �� scp�C�o��ӫ��O�]���O�ϥ� ssh ���q�D (port 22)�A�u�O������ FTP �P�ƻs���ʧ@�Ӥw�C�ڭ̥��ͽ� sftp �A�o�ӫ��O���Ϊk�P ssh �ܬۦ��A�u�O ssh �O�Φb�n�J�� sftp �b�W��/�U���ɮצӤw�C

[root@www ~]# sftp student@localhost
Connecting to localhost...
student@localhost's password: <== �o�̽п�J�K�X�ڡI
sftp> exit  <== �o�̴N�O�b���ݧA��J ftp �������O���a��F�I

�i�J�� sftp ����A���N��b�@�� FTP �Ҧ��U���ާ@��k�S����ˤF�I���U�ڭ̴N�ӽͤ@�͡A sftp �o�Ӥ����U���ϥΫ��O�a�I

�w�ﻷ����A���D�� (Server) ���欰
�ܴ��ؿ��� /etc/test �Ψ�L�ؿ� cd /etc/test
cd PATH
�C�X�ثe�Ҧb�ؿ��U���ɦW ls
dir
�إߥؿ� mkdir directory
�R���ؿ� rmdir directory
��ܥثe�Ҧb���ؿ� pwd
����ɮשΥؿ��s�� chgrp groupname PATH
����ɮשΥؿ��֦��� chown username PATH
����ɮשΥؿ����v�� chmod 644 PATH
�䤤�A644 �P�v�������I�^�h�ݰ�¦�g�I
�إ߳s���� ln oldname newname
�R���ɮשΥؿ� rm PATH
����ɮשΥؿ��W�� rename oldname newname
���}���ݥD�� exit (or) bye (or) quit
�w�糧�� (Client) ���欰(���[�W l, L ���p�g )
�ܴ��ؿ��쥻���� PATH ���� lcd PATH
�C�X�ثe�����Ҧb�ؿ��U���ɦW lls
�b�����إߥؿ� lmkdir
��ܥثe�Ҧb�������ؿ� lpwd
�w���ƤW��/�U�����欰
�N�ɮץѥ����W�Ǩ컷�ݥD�� put [�����ؿ����ɮ�] [����]
put [�����ؿ����ɮ�]
�p�G�O�o�خ榡�A�h�ɮ׷|��m��ثe���ݥD�����ؿ��U�I
�N�ɮץѻ��ݥD���U���^�� get [���ݥD���ؿ����ɮ�] [����]
get [���ݥD���ؿ����ɮ�]
�Y�O�o�خ榡�A�h�ɮ׷|��m�b�ثe�����Ҧb���ؿ������I�i�H�ϥθU�Φr���A�Ҧp�G
get *
get *.rpm
��O�i�H���榡�I

�N����Ө��A sftp �b Linux ���U�A�p�G���Ҽ{�ϧΤ����A����L�w�g�i�H���N FTP �F�O�I�]���Ҧ����\�ೣ�w�g�[�\�աI�]���A�b���Ҽ{��ϧΤ����� FTP �n��ɡA�i�H�������� FTP ���A�ȡA�ӧ�H sftp-server �Ӵ��� FTP ���A�ȧa�I ^_^

���D�G
���] localhost �����ݦ��A���A�B���A���W�� student �o�ӨϥΪ̡C�A�Q�n (1)�N������ /etc/hosts �W�Ǩ� student �a�ؿ��A�� (2)�N student �� .bashrc �ƻs�쥻���� /tmp ���U�A�Ӧp��z�L sftp �F���H
���G
[root@www ~]# sftp student@localhost
sftp> lls /etc/hosts   <==���ݬݥ������S���o���ɮ�
/etc/hosts
sftp> put /etc/hosts   <==�����ܡA���N�W�ǧa�I
Uploading /etc/hosts to /home/student/hosts
/etc/hosts                        100%  243     0.2KB/s   00:00
sftp> ls               <==���S���W�Ǧ��\�H�ݻ��ݥؿ��U���ɦW
hosts
sftp> ls -a            <==�����S�������ɩO�H
.               ..              .bash_history   .bash_logout
.bash_profile   .bashrc         .mozilla        hosts
sftt> lcd /tmp         <==���������ؿ��� /tmp 
sftp> lpwd             <==�u�O�i��T�{�Ӥw�I
Local working directory: /tmp
sftp> get .bashrc      <==�S���D�N�U���a�I
Fetching /home/student/.bashrc to .bashrc
/home/student/.bashrc             100%  124     0.1KB/s   00:00
sftp> lls -a           <==�ݥ��a���ɮ��ɦW
.        .font-unix   keyring-rNd7qX  .X11-unix
..       .gdm_socket  lost+found      scim-panel-socket:0-root
.bashrc  .ICE-unix    mapping-root    .X0-lock
sftp> exit             <==���}�a�I

�p�G�A�����w�ϥΤ�r�����i�� FTP ���ǿ�A�����٥i�H�z�L�ϧΤ����ӳs���� sftp-server ���I �A�i�H�Q�ΤG�Q�@�� FTP ���A�����쪺 Filezilla �Ӷi��s�u���աI �p���@�ӡA�P���A���������ɮ׶ǿ�N��K�h�F�a�I

�q�`�ϥ� sftp �O�]���i�ण���D���A���W���������ɦW���ɮצs�b�A�p�G�w�g���D���A���W���ɮ��ɦW�F�A �����²�檺�ɮ׶ǿ�h�O�z�L scp �o�ӫ��O��I��²�檺 scp �Ϊk�p�U�G

[root@www ~]# scp [-pr] [-l �t�v] file  [�b��@]�D��:�ؿ��W <==�W��
[root@www ~]# scp [-pr] [-l �t�v] [�b��@]�D��:file  �ؿ��W <==�U��
�ﶵ�P�ѼơG
-p �G�O�d�쥻�ɮת��v����ơF
-r �G�ƻs�ӷ����ؿ��ɡA�i�H�ƻs��ӥؿ� (�t�l�ؿ�)
-l �G�i�H����ǿ骺�t�סA��쬰 Kbits/s �A�Ҧp [-l 800] �N���ǿ�t�� 100Kbytes/s

# 1. �N������ /etc/hosts* �����ƻs�� 127.0.0.1 �W���� student �a�ؿ���
[root@www ~]# scp /etc/hosts* student@127.0.0.1:~
student@127.0.0.1's password: <==��J student �K�X
hosts                        100%  207         0.2KB/s   00:00
hosts.allow                  100%  161         0.2KB/s   00:00
hosts.deny                   100%  347         0.3KB/s   00:00
# �ɦW���                   �i��  �e�q(bytes) �ǿ�t��  �Ѿl�ɶ�
# �A�i�H�J�ӬݡA�X�{���T�����������A�N�q�p�W�ҥܡC

# 2. �N 127.0.0.1 �o�����ݥD���� /etc/bashrc �ƻs�쥻���� /tmp ���U
[root@www ~]# scp student@127.0.0.1:/etc/bashrc /tmp

����W�ǩΤU�������I�O���ӫ_�� (:) �o�I�s���b�_���᭱���N�O���ݥD�����ɮסC �]���A�p�G�_���b�e�A�N�����N�O�q���ݥD���U���U�ӡA�p�G�_���b��A�h�N��������ƤW�ǰաI �Ӧp�G�Q�n�ƻs�ؿ����ܡA����i�H�[�W -r ���ﶵ�I

���D�G
���]���������ɮ��ɦW�� /root/dd_10mb_file �A�o���ɮצ� 10 MB �o��j�C���]�A�Q�n�W�Ǩ� 127.0.0.1 �� /tmp ���U�h�A �ӥB�A�b 127.0.0.1 �W���� root �o�ӱb�����ϥ��v�C���ѩ��W�e���_�Q�A�]���A�u�Q�n��O 100Kbyes/s ���ǿ�q�����@�ʧ@�A ���Ӧp��U�F���O�H
���G
�ѩ�w�]���s�b�o���ɮסA�]���ڭ̱o���ϥ� dd �ӫإߤ@�Ӥj�ɮסG
dd if=/dev/zero of=/root/dd_10mb_file bs=1M count=10
�إߧ�������A�ѩ�O�W�Ǹ�ơA�[�� -l ���ﶵ���A���ӳt�v�Ϊ��O bit �A�ন�e�q�� bytes �ݭn���W 8 ���A�]�����O�N�n�o�ˤU�F�G
scp -l 800 /root/dd_10mb_file root@127.0.0.1:/tmp


11.2.4 ssh �Τ�ݳs�u�{�� - Windows �Τ�

�P Linux ���P���O�A�w�]�� Windows �èS�� ssh ���Τ�ݵ{���A�]���Ҧ����{�����o�n�U����L�ĤT��n��~��C �`�����n��D�n�� pietty, psftp �� filezilla ���C���U�N���ڭ̨ӽͽͳo�X�ӳn��a�C

�b Linux ���U�Q�n�s�� SSH ���A���A�i�H�����Q�� ssh �o�ӫ��O�A�b Windows �@�~�t�Ω��U�N�o�n�ϥ� pietty �� putty �o��Ӫ��N��A�o��̪��U���I�аѦ� (��2)�G

�b putty ���x������W���ܦh���n��i�H�ϥΪ��A�]�A putty/pscp/psftp �����C�L�̤��O�����F ssh/scp/sftp �o�T�ӫ��O�N�O�F�C�ӳ����R�Ϊ� pietty �h�O�x�W���L���w���ͮھ� putty �ҧ睊�Ӧ����C�ѩ� pietty ���F���㪺�ۮe�� putty ���~�A�ٴ��ѤF���P�������㪺��r�s�X�A��b�ܦn�ΩO�A�ҥH���U�����N�H pietty �ӧ@�������o�C�b�A�U�� pietty ������A�������ɮסA�N�|�X�{�p�U���e���o�G

pietty ���Ұʵe���ܷN��
�� 11.2-3�Bpietty ���Ұʵe���ܷN��

�b�W�Ϥ��b�Y�� 1 ���a��ж�g�������D���W�٩Ϊ̬O IP �A�b�Y 2 ���M�ȥ���� SSH ���@���A�ܩ�b�Y 3 ���a��A����������w���X�{���˦��A�]���i�H�����ק�@�� pietty �����ҳ]�w�ȡA�ҥH�����O��ܿ��աI �Y�S�����D�A���U�y�s�u�z��A�N�|�X�{�p�U���ݵn�J�P��J�b/�K��ƪ��e���G

pietty ���n�J�P�ϥεe���ܷN��
�� 11.2-4�Bpietty ���n�J�P�ϥεe���ܷN��

�o�ӹϥܷ|���A�H���O�b�D���e���u�@�a�I�ӥB�W�Y�٦����i�H�H�ɽվ������r�ΡB�r��B�r���s�X���������n���ҰѼơC �ר�O�r���s�X�����D�A���ɭԧA�|�o�{�}���ɮ׮ɡA���M�e�������|���ýX�Ӥ��O���`��������ܡA ���N�O�s�X�����D�C�n�ѨM�o�Ӱ��D�ɡA�A�����n�c�O�U�����T�Ӹ�y�t�s�X��������ƭn�ۦP�~��G

�ڭ̪��D Linux �������s�X�i�H�z�L LANG �o���ܼƨӽվ�A���Ӧp��վ� pietty ������s�X�O�H�A�i�H�z�L�� 11.2-4 ���C�������y�ﶵ�z�ӳB�z�A�p�U�ҥܡG

�վ� pietty ���y�t�s�X�覡 (�P���������)
�� 11.2-5�B�վ� pietty ���y�t�s�X�覡 (�P���������)

�b�y�ﶵ�z���y�r���s�X�z�̭��i�H�D�� big5 (cp950) �Ϊ̬O unicode (utf8) ������s�X�A�����ŦX�A�� Linux �P�ɮש��x�s����Ʈ榡�A������r�N OK ���աI ^_^�I�p�G�Q�n�@��ӳ����]�w�ɡA�i�H��ܹ� 11.2-5 �W�Y�̩��U�����ӡy�Բӳ]�w�z���ءA �N�|�X�{�p�U�ϥܡC�䤤�󬰭��n���O�y��L�k�����Ʀr��Q�n�ͮġz�ɡA �i�H���ӤU�Ϫ����ܨӱҰʼƦr�䪺�\��G

pietty �n�����ҸԲӳ]�w�A�P��L�k���Ʀr�������
�� 11.2-6�Bpietty �n�����ҸԲӳ]�w�A�P��L�k���Ʀr�������

�N�W�Ϥ��b�Y 2 �ҫ������Ӷ��ؤĿ�_�ӥB���U�yApply�z����A�A��L�k�����Ʀr��~������`���ϥΩO�A�_�h���k���Ʀr��|�O�ýX�աC �A�ӡA�A�i�H�վ� pietty ���b���O�Ц�ơA�o�˷���ƤӦh�ɡA�A���¥i�H�վ㱲�b�Ӭd�\���e����ơC�]�w����k�p�U�G

�վ�e���i�H�O�Ъ���ơA�i���Τ�^�h�ݸ��h���e���e��
�� 11.2-7�B�վ�e���i�H�O�Ъ���ơA�i���Τ�^�h�ݸ��h���e���e��

�վ㧹�o�DZ`�Ϊ���ƫ�A�A�ӳo�O�̭��n���G�y�A�n�H���@�Ӫ����� SSH �t��k�n�J�H�z�e�����L�A�ڭ̹w�]�O�H version2 �ӵn�J���A�ҥH�o�̧ڭ̥i�H�վ㬰 2 ���Ӷ��ءI�o�˨C���n�J���|�H version 2 ���Ҧ��n�J�D���F�I

�]�w�n�J���A���ɨϥΪ� ssh �t��k����
�� 11.2-8�B�]�w�n�J���A���ɨϥΪ� ssh �t��k����

��� pietty ���ϥλP�����]�w�y�{�N�O�o�ˡI�p���@�ӡA�A�N�i�H�b Windows �W���H SSH ����w�A�n�J���ݪ� Linux �D���P�I����K�a�I ^_^ �I�p�G�Q�n����䴩���ܡA�ثe pietty �w�g�䴩����աI�A�i�H��J�����I���L�ݭn�ק�@�U�r�����A ����� 11.2-5 �y�ﶵ�z�����y�r���z�N�|�X�{�p�U�ϥܡG

��ܤ��媺�r�λP�s�X
�� 11.2-9�B��ܤ��媺�r�λP�s�X

�N(1)�r���]�w���ө���B(2)�r���]�w���yBig5�z�A�p���@�ӡA�A�� pietty �N�䴩���媺��J�o�I

����W���ڭ̧@���o�dz]�w�ȳ��O���b���̰ڡH�����I���O���b Windows ���n���ɷ����ڡI�A�i�H�b Windows ���t�η����A�b�y�}�l�z-->�y����z��A�X�{���خؤ���J�yregedit�z�A ����|�X�{�@�Ӥj�����C�Цb���䪺�e��������ܡy HKEY_CURRENT_USER --> Software --> SimonTatham --> PuTTY --> Sessions�z�A �N�i�H�ݨ�A���]�w���o�I ^_^�I �o�ˡA�]�N�i�H�x�s�A���]�w���o��

�b putty ���x������W�]���� psftp �o��{���C�o�@��{�������I�h�b�ϥ� sftp-server�C�ϥΪ��覡�i�H�����I�� psftp �o���ɮסA���L�����ҰʡA�h�|�X�{�U�����ϼˡG

psftp: no hostname specified; use "open host.name" to connect
psftp>

�o�Ӯɭԥi�H��J�A�n�s���W�h���D���W�١A�Ҧp�ڪ��ϰ줺���� 192.168.100.254 �o���D���G

psftp: no hostname specified; use "open host.name" to connect
psftp> open 192.168.100.254
login as: root
root@192.168.100.254's password:
Remote working directory is /root
psftp> <== �o�̴N�b���ݧA��J FTP �����O�F�I

�����I�o�˴N�n�J�D���աI��²��a�I�M���L���ϥΤ覡��e�����쪺 sftp �@�˭��I�[�o���ϥΧa�I

SSH �Ҵ��Ѫ� sftp �\��u��Q�ί¤�r������ psftp �ӳs�u�ܡH���S���ϧΤ������n��O�H�����I���M���I ���N�O�D�`���Ϊ� Filezilla �o�IFilezilla �O�ϧΤ������@�� FTP �Τ�ݳn��A�ϥΤW�D�`����K�A �ܩ�ԲӪ��w�˻P�ϥάy�{�аѦҲĤG�Q�@�� vsftpd ��������I


11.2.5 sshd ���A���ӳ��]�w

�򥻤W�A�Ҧ��� sshd ���A���Բӳ]�w����b /etc/ssh/sshd_config �̭��I���L�A�C�� Linux distribution ���w�]�]�w�����ӬۦP�A�ҥH�ڭ̦����n���A�Ѥ@�U��ӳ]�w�Ȫ��N�q����~�n�I �P�ɽЪ`�N�A�b�w�]���ɮפ��A�u�n�O�w�]���X�{�B�Q���Ѫ��]�w�� (�]�w�ȫe���[ #)�A�Y���y�w�]�ȡI�z�A�A�i�H�̾ڥ��ӭק諸���C

[root@www ~]# vim /etc/ssh/sshd_config
# 1. ���� SSH Server ������]�w�A�]�t�ϥΪ� port �աA�H�ΨϥΪ��K�X�t��覡
# Port 22
# SSH �w�]�ϥ� 22 �o��port�A�]�i�H�ϥΦh��port�A�Y���ƨϥ� port �o�ӳ]�w���ءI
# �Ҧp�Q�n�}�� sshd �b 22 �P 443 �A�h�h�[�@�椺�e���G�y Port 443 �z
# �M�᭫�s�Ұ� sshd �o�˴N�n�F�I���L�A����ij�ק� port number �աI

Protocol 2
# ��ܪ� SSH ��w�����A�i�H�O 1 �]�i�H�O 2 �ACentOS 5.x �w�]�O�Ȥ䴩 V2�C
# �p�G�Q�n�䴩�ª� V1 �A�N�o�n�ϥΡy Protocol 2,1 �z�~��C

# ListenAddress 0.0.0.0
# ��ť���D�������d�I�|�ӨҤl�ӻ��A�p�G�A����� IP�A���O�O 192.168.1.100 �� 
# 192.168.100.254�A���]�A�u�Q�n�� 192.168.1.100 �i�H��ť sshd �A���N�o�˼g�G
# �y ListenAddress 192.168.1.100 �z�w�]�ȬO��ť�Ҧ������� SSH �n�D

# PidFile /var/run/sshd.pid
# �i�H��m SSHD �o�� PID ���ɮסI�W�z���w�]��

# LoginGraceTime 2m
# ���ϥΪ̳s�W SSH server ����A�|�X�{��J�K�X���e���A�b�ӵe�����A
# �b�h�[�ɶ����S�����\�s�W SSH server �N�j���_�u�I�Y�L���h�w�]�ɶ������I

# Compression delayed
# ���w��ɶ}�l�ϥ����Y��ƼҦ��i��ǿ�C�� yes, no �P�n�J��~�N������Y (delayed)

# 2. �����D���� Private Key ��m���ɮסA�w�]�ϥΤU�����ɮקY�i�I
# HostKey /etc/ssh/ssh_host_key        # SSH version 1 �ϥΪ��p�_
# HostKey /etc/ssh/ssh_host_rsa_key    # SSH version 2 �ϥΪ� RSA �p�_
# HostKey /etc/ssh/ssh_host_dsa_key    # SSH version 2 �ϥΪ� DSA �p�_
# �ٰO�o�ڭ̦b�D���� SSH �s�u�y�{�̭��ͨ쪺�A�o�̴N�O Host Key ��

# 3. ����n���ɪ��T����Ʃ�m�P daemon ���W�١I
SyslogFacility AUTHPRIV
# �����H�ϥ� SSH �n�J�t�Ϊ��ɭԡASSH �|�O����T�A�o�Ӹ�T�n�O���b���� daemon name
# ���U�H�w�]�O�H AUTH �ӳ]�w���A�Y�O /var/log/secure �̭��I����H�ѰO�F�I
# �^�� Linux ��¦�h½�@�U�C��L�i�Ϊ� daemon name ���GDAEMON,USER,AUTH,
# LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5,

# LogLevel INFO
# �n���O�������šI�K�K�I����T���I�P�˪��A�ѰO�F�N�^�h�ѦҡI

# 4. �w���]�w���ءI�����n�I
# 4.1 �n�J�]�w����
# PermitRootLogin yes
# �O�_���\ root �n�J�I�w�]�O���\���A���O��ij�]�w�� no�I

# StrictModes yes
# �O�_�� sshd �h�ˬd�ϥΪ̮a�ؿ��ά����ɮת��v����ơA
# �o�O���F��ߨϥΪ̱N�Y�ǭ��n�ɮת��v���]���A�i��|�ɭP�@�ǰ��D�ҭP�C
# �Ҧp�ϥΪ̪� ~.ssh/ �v���]���ɡA�Y�ǯS�����p�U�|���\�Τ�n�J

# PubkeyAuthentication yes
# AuthorizedKeysFile      .ssh/authorized_keys
# �O�_���\�Τ�ۦ�ϥΦ��諸���_�t�ζi��n�J�欰�A�Ȱw�� version 2�C
# �ܩ�ۻs�����_��ƴN��m��ϥΪ̮a�ؿ��U�� .ssh/authorized_keys ��

PasswordAuthentication yes
# �K�X���ҷ��M�O�ݭn���I�ҥH�o�̼g yes �o�I

# PermitEmptyPasswords no
# �Y�W�����@���p�G�]�w�� yes ���ܡA�o�@���N�̦n�]�w�� no �A
# �o�Ӷ��ئb�O�_���\�H�Ū��K�X�n�J�I���M���\�I

# 4.2 �{�ҳ���
# RhostsAuthentication no
# �����t�Τ��ϥ� .rhosts�A�]���Ȩϥ� .rhosts�Ӥ��w���F�A�ҥH�o�̤@�w�n�]�w�� no

# IgnoreRhosts yes
# �O�_�����ϥ� ~/.ssh/.rhosts �Ӱ����{�ҡI���M�O�I

# RhostsRSAAuthentication no #
# �o�ӿﶵ�O�M���� version 1 �Ϊ��A�ϥ� rhosts �ɮצb /etc/hosts.equiv
# �t�X RSA �t��覡�Ӷi��{�ҡI���n�ϥΰڡI

# HostbasedAuthentication no
# �o�Ӷ��ػP�W�������������A���L�O�� version 2 �ϥΪ��I

# IgnoreUserKnownHosts no
# �O�_�����a�ؿ����� ~/.ssh/known_hosts �o���ɮשҰO�����D�����e�H
# ���M���n�����A�ҥH�o�̴N�O no �աI

ChallengeResponseAuthentication no
# ���\���󪺱K�X�{�ҡI�ҥH�A���� login.conf �W�w���{�Ҥ覡�A���i�A�ΡI
# ���ثe�ڭ̤�����w�ϥ� PAM �Ҳ������޲z�{�ҡA�]���o�ӿﶵ�i�H�]�w�� no ��I

UsePAM yes
# �Q�� PAM �޲z�ϥΪ̻{�Ҧ��ܦh�n�B�A�i�H�O���P�޲z�C
# �ҥH�o�̧ڭ̫�ij�A�ϥ� UsePAM �B ChallengeResponseAuthentication �]�w�� no 
�@
# 4.3 �P Kerberos �������ѼƳ]�w�I�]���ڭ̨S�� Kerberos �D���A�ҥH���U���γ]�w�I
# KerberosAuthentication no
# KerberosOrLocalPasswd yes
# KerberosTicketCleanup yes
# KerberosTgtPassing no
�@
# 4.4 ���U�O�����b X-Window ���U�ϥΪ������]�w�I
X11Forwarding yes
# X11DisplayOffset 10
# X11UseLocalhost yes
# ������n���O X11Forwarding ���ءA�L�i�H����������Ƴz�L ssh �q�D�Ӷǰe��I
# �b�����᭱����i���� ssh �ϥΤ�k���|�ͨ�C

# 4.5 �n�J�᪺���ءG
# PrintMotd yes
# �n�J��O�_��ܥX�@�Ǹ�T�O�H�Ҧp�W���n�J���ɶ��B�a�I�����A�w�]�O yes
# ��Y�O�C�L�X /etc/motd �o���ɮת����e�C���O�A�p�G���F�w���A�i�H�Ҽ{�אּ no �I

# PrintLastLog yes
# ��ܤW���n�J����T�I�i�H�ڡI�w�]�]�O yes �I

# TCPKeepAlive yes
# ���F���s�u��A���A���|�@���ǰe TCP �ʥ]���Τ���ǥH�P�_��覡�_�@���s�b�s�u�C
# ���L�A�p�G�s�u�ɤ��������Ѿ��Ȯɰ���A�ȴX�����A�]�|���s�u���_��I
# �b�o�ӱ��p�U�A����@�ݦ�����ASSH�i�H�ߨ誾�D�I�Ӥ��|�����͵{�Ǫ��o�͡I
# ���p�G�A�������θ��Ѿ��`�`��í�w�A����i�H�]�w�� no ���աI

UsePrivilegeSeparation yes
# �O�_�ϥ��v�����C���{�ǨӴ��ѨϥΪ̾ާ@�C�ڭ̪��D sshd �Ұʦb port 22 �A
# �]���Ұʪ��{�ǬO�ݩ� root �������C����� student �n�J��A�o�ӳ]�w��
# �|�� sshd ���ͤ@���ݩ� sutdent �� sshd �{�ǨӨϥΡA��t�θ��w��

MaxStartups 10
# �P�ɤ��\�X�ө|���n�J���s�u�e���H���ڭ̳s�W SSH �A���O�|����J�K�X�ɡA
# �o�ӮɭԴN�O�ڭ̩ҿת��s�u�e���աI�b�o�ӳs�u�e�����A���F�O�@�D���A
# �ҥH�ݭn�]�w�̤j�ȡA�w�]�̦h�Q�ӳs�u�e���A�Ӥw�g�إ߳s�u�����p��b�o�Q�ӷ���

# 4.6 ����ϥΪ̩�ת��]�w���ءG
DenyUsers *
# �]�w����ת��ϥΪ̦W�١A�p�G�O�������ϥΪ̡A���N�O�����קa�I
# �Y�O�����ϥΪ̡A�i�H�N�ӱb����J�I�Ҧp�U�C�I
DenyUsers test

DenyGroups test
# �P DenyUsers �ۦP�I�ȩ�״X�Ӹs�զӤw�I

# 5. ���� SFTP �A�ȻP��L���]�w���ءI
Subsystem       sftp    /usr/lib/ssh/sftp-server
# UseDNS yes
# �@��ӻ��A���F�n�P�_�Τ�ݨӷ��O���`�X�k���A�]���|�ϥ� DNS �h�Ϭd�Τ�ݪ��D���W
# ���L�p�G�O�b�������s�A�o���س]�w�� no �|���s�u�F���t�פ���֡C

�򥻤W�ACentOS �w�]�� sshd �A�Ȥw�g��O���w�����F�A���L�٤����I��ij�A (1)�N root ���n�J�v�������F (2)�N ssh �����]�w�� 2 �C��L���]�w�ȴN�ЧA�̷Ӧۤv���ߦn�ӳ]�w�F�C �q�`����ij�i���H�K�ק�աI�t�~�A�p�G�A�ק�L�W���o���ɮ�(/etc/ssh/sshd_config)�A����N���ݭn���s�Ұʤ@�� sshd �o�� daemon �~��I��Y�O�G


11.2.6 �s�@���αK�X�i�ߧY�n�J�� ssh �Τ�

�A�γ\�w�g�Q��F�A�J�M ssh �i�H�ϥ� scp �Ӷi������ƻs���ܡA����گण��N scp �����O��m�� crontab �A�Ȥ��A ���ڭ̪��t�γz�L scp �����b�I�����U�ۦ�w�����i������ƻs�P�ƥ��O�H��p�A���׬O�G�y�w�]���p�U�����\���ʧ@�z���I ���ƻ�O�H�]���w�]���p�U�A�A�����n�z�L���ݵn�J�A�P scp ���ʪ���J�K�X�~��ڡI�� crontab �S���|���A���׺ݤ�����J�K�X�A �ҥH�ӵ{�ǴN�|�@���d���ӵL�k�b crontab �����榨�\��I �����H�ڭ̭n���o�Ӧn�Ϊ������ƻs�u��ܡH���M���O�աI�ڭ̥i�H�z�L���_�{�Ҩt�ΨӳB�z���I

�J�M SSH �i�H�ϥΪ��_�t�ΨӤ���ơA�åB���ѨϥΪ̸�ƪ��[�K�\��A����i���i��Q�γo�� Key �N���ѨϥΪ̦ۤv�i�J�D���A�Ӥ��ݭn��J�K�X�O�H�����I�n�D�N�I�ڭ̥i�H�N Client ���ͪ� Key ���L������ Server �����A�ҥH�A �H�� Client �n�J Server �ɡA�ѩ��̦b SSH �n�s�u���T���ǻ����A�N�w�g���L Key �F�A �]���A�i�H�ߧY�i�J��ƶǿ餶�����A�Ӥ��ݭn�A��J�K�X�O�I�b��@�W���B�J�i�H�O�G

  1. �Τ�ݫإߨ���_���G�Q�@�Q�A�b���_�t�Τ��A�O���_������n�٬O�p�_������n�H ���M�O�p�_������n�I�]���p�_�~�O�ѱK������ڡI�ҥH�o�A�o����_�ͷ��M�o�b�o�_�s�u���Τ�ݫظm�~��C�Q�Ϊ����O�� ssh-keygen �o�өR�O�F

  2. �Τ�ݩ�m�n�p�_�ɮ��G�N Private Key ��b Client �W�����a�ؿ��A��Y $HOME/.ssh/ �A �åB�o�n�`�N�v����I

  3. �N���_��m���A���ݪ����T�ؿ��P�ɦW�h�G�̫�A�N���� Public Key ��b����@�ӧA�Q�n�Ψӵn�J�����A���ݪ��Y User ���a�ؿ����� .ssh/ �̭����{���ɮקY�i������ӵ{�ǡC

���O�n���ܧx�����ˤl�A���B�J�u����²��A�ڭ̨̧ǨӶi��@�~�n�F�I���]�e���p�U�A�Ӷi�檺�B�J�h�p�U�ϡG

�s�@���ݭn�K�X�� ssh �b���򥻬y�{
�� 11.2-10�B�s�@���ݭn�K�X�� ssh �b���򥻬y�{

�إߪ���k��²��A�b clientlinux.centos.vbird �o���D���W���H vbirdtsai �������ӫإߨ���_�ͧY�i�C ���L�A�ݭn�`�N���O�A�ڭ̦��h�رK�X�t��k�A�p�G�����w�S�����t��k�A�h�w�]�H RSA �t��k�ӳB�z�G

[vbirdtsai@clientlinux ~]$ ssh-keygen [-t rsa|dsa] <==�i�� rsa �� dsa
[vbirdtsai@clientlinux ~]$ ssh-keygen  <==�ιw�]����k�إߪ��_
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vbirdtsai/.ssh/id_rsa): <==�� enter
Created directory '/home/vbirdtsai/.ssh'. <==���ؿ��Y���s�b�h�|�D�ʫإ�
Enter passphrase (empty for no passphrase): <==�� Enter �����K�X
Enter same passphrase again: <==�A��J�@�� Enter �a�I
Your identification has been saved in /home/vbirdtsai/.ssh/id_rsa. <==�p�_��
Your public key has been saved in /home/vbirdtsai/.ssh/id_rsa.pub. <==���_��
The key fingerprint is:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 vbirdtsai@clientlinux.centos.vbird

[vbirdtsai@clientlinux ~]$ ls -ld ~/.ssh; ls -l ~/.ssh
drwx------. 2 vbirdtsai vbirdtsai 4096 2011-07-25 12:58 /home/vbirdtsai/.ssh
-rw-------. 1 vbirdtsai vbirdtsai 1675 2011-07-25 12:58 id_rsa      <==�p�_��
-rw-r--r--. 1 vbirdtsai vbirdtsai  416 2011-07-25 12:58 id_rsa.pub  <==���_��

�Ъ`�N�W����A�ڪ������O vbirdtsai �A�ҥH���ڰ��� ssh-keygen �ɡA�~�|�b�ڪ��a�ؿ����U�� .ssh/ �o�ӥؿ��̭����ͩһݭn����� Keys �A���O�O�p�_ (id_rsa) �P���_ (id_rsa.pub)�C ~/.ssh/ �ؿ������n�O 700 ���v���~���I�t�~�@�ӭn�S�O�`�N���N�O���� id_rsa ���ɮ��v���աI�L�����n�O -rw------- �B�ݩ� vbirdtsai �ۤv�~��I�_�h�b���Ӫ��_��諸�L�{�����A�i��|�Q�P�w���M�I�ӵL�k���\���H���p�_�����ɮת�����ӹF���s�u��C ���A�إߨp�_��w�]���v���P�ɦW��m��m���O���T���A�A�u�n�ˬd�L�S���D�Y�i�C

�]���ڭ̭n�n�J www.centos.vbird �O�H dmtsai �������A�]���ڭ̴N�o�n�N�W�ӨB�J�إߪ����_ (id_rsa.pub) �W�Ǩ���A���W�� dmtsai �Τ�~��C���p��W�ǩO�H��²�檺��k���M�N�O�ϥ� scp ���I

[vbirdtsai@clientlinux ~]$ scp ~/.ssh/id_rsa.pub dmtsai@192.168.100.254:~
# �W�Ǩ� dmtsai ���a�ؿ����U�Y�i�C

�ٰO�o sshd_config �̭��ͨ쪺 AuthorizedKeysFile �o�ӳ]�w�ȧa�H�ӳ]�w�ȴN�O�b���w���_������ӭn��m���ɦW�o�I�ҥH�A�ڭ̥����n����A���ݪ� dmtsai �o�ӥΤᨭ���U�A �N���W�Ǫ� id_rsa.pub ��ƪ��[�� authorized_keys �o���ɮפ��~��C�@�k���I���o�ˡG

# 1. �إ� ~/.ssh �ɮסA�`�N�v���ݭn�� 700 ��I
[dmtsai@www ~]$ ls -ld .ssh
ls: .ssh: �S�����@�ɮשΥؿ�
# �ѩ�i��O�s�ت��Τ�A�]���o�ӥؿ����s�b�C���s�b�~�@���U�إߥؿ����欰

[dmtsai@www ~]$ mkdir .ssh; chmod 700 .ssh
[dmtsai@www ~]$ ls -ld .ssh
drwx------. 2 dmtsai dmtsai 4096 Jul 25 13:06 .ssh
# �v���]�w���A�ȥ��O 700 �B�ݩ�ϥΪ̥��H���b���P�s�դ~��I

# 2. �N���_�ɮפ�����ƨϥ� cat ��s�� authorized_keys ��
[dmtsai@www ~]$ ls -l *pub
-rw-r--r--. 1 dmtsai dmtsai 416 Jul 25 13:05 id_rsa.pub <==�T�꦳�s�b

[dmtsai@www ~]$ cat id_rsa.pub >> .ssh/authorized_keys
[dmtsai@www ~]$ chmod 644 .ssh/authorized_keys
[dmtsai@www ~]$ ls -l .ssh
-rw-r--r--. 1 dmtsai dmtsai 416 Jul 25 13:07 authorized_keys
# �o���ɮת��v���]�w���A�N�o�n�O 644 �~�i�H�I���i�H�d�V�F�I


�o�˴N�d�w���_�t���o�I�H��A�q clientlinux.centos.vbird �� vbirdtsai �n�J�� www.centos.vbird �� dmtsai �Τ�ɡA �N���ݭn���󪺱K�X�o�I�|�Ҩӻ��A�A�i�H�o�˴��լݬ��o�G

���D�G
�z�L�W�z���רҽm�ߦ��\��A�Цb clientlinux �� vbirdtsai �������A�N�t�Ϊ� /etc/hosts* �ɮ׽ƻs�� www.centos.vbird �� dmtsai �Τ᪺�a�ؿ��C
���G
[vbirdtsai@clientlinux ~]$ scp /etc/hosts* dmtsai@192.168.100.254:~
hosts                                        100%  187     0.2KB/s   00:00
hosts.allow                                  100%  161     0.2KB/s   00:00
hosts.deny                                   100%  347     0.3KB/s   00:00
# �A�|�o�{�A�쥻�|�X�{�����ӱK�X���ܸ�Ƥ��|�X�{�F��I

[vbirdtsai@clientlinux ~]$ ssh dmtsai@192.168.100.254 "ls -l"
-rw-r--r--. 1 dmtsai dmtsai 196 2011-07-25 13:09 hosts
-rw-r--r--. 1 dmtsai dmtsai 370 2011-07-25 13:09 hosts.allow
-rw-r--r--. 1 dmtsai dmtsai 460 2011-07-25 13:09 hosts.deny
-rw-r--r--. 1 dmtsai dmtsai 416 2011-07-25 13:05 id_rsa.pub
# �T�꦳�ƻs����h�F�I����ܥX���T�����ݸ�ƭ��I

��²�檺�B�J�a�I�o�ˤ@�ӡA�ϥ� ssh �������Τ�ݫ��O�N�i�H���ݱK�X������F�I�L�צp��A�b�إߪ��_�t�Ϊ��B�J���A�n�O�o���O�G

���ӡA���A�ٷQ�n�n�J��L���D���ɡA�u�n�N�A�� public key (�N�O id_rsa.pub �o���ɮ�) ���L copy ���L�D���W���h�A�åB�s�W��Y�b���� ~/.ssh/authorized_keys �o���ɮפ��I�����I���\�I


11.2.7 ²���w���]�w

�ѹ껡�A�j�a���Q�ySSH �O�Ӧw�����A�ȡz�Ҵ��F�F�I��� sshd �ä����w�����I½�} openssh ���L�h���v�ӬݡA�T�꦳�ܦh�H�O�Q�� ssh ���{���|�}�Ө��o���ݥD�� root ���v���A�i�@�B�±���誺�D���I�ҥH�o���N�໡��ܡA�]���O�ܦw�����աI

sshd ���ҿת��y�w���z�������O�y sshd ����ƬO�[�K�L���A�ҥH�L����Ʀb Internet �W���ǻ��ɬO����w�����C�ܩ� sshd �o�ӪA�ȥ����N���O���˦w���F�I�ҥH���G�y�D���n�A���n�N sshd �� Internet �}��i�n�J���v���A�ɶq�]���b�X�Ӥp�d�򤺪� IP �ΥD���W�٧Y�i�I�o�ܭ��n����I

�n�F�A��������w�����]�w�譱�A���S������ȱo�`�N���O�H���M�O���աI�ڭ̥i�H����ij�X�Ӷ��اa�I���O�i�H�ѩ��U�o�T�譱�Ӷi��G

�@��Ө��A�o���ɮת��w�]���شN�w�g�ܧ��ƤF�I�ҥH�A�ƹ�W�O���ӻݭn��ʥL���I ���O�A�p�G�A���ǨϥΪ̤譱���U�{�A����i�H�o�˭ץ��@�ǰ��D�O�I

���F�W�z���b�����~�A��L���Τ�h�i�H���`���ϥΨt�ΡC�{�b�������]�A���t�θ̭��w�g�� sshnot1, sshnot2, sshnot3 �[�J nossh �s�աA �P�ɨt���٦� testssh, student ���b���C�������b���B�z�Цۦ�ѦҰ�¦�g�ӳ]�w�A���U�ȬO�C�X�[����I�G

# 1. ���[��@�U�һݭn���b���O�_�s�b�O�H
[root@www ~]# for user in sshnot1 sshnot2 sshnot3 testssh student; do \
> id $user | cut -d ' ' -f1-3 ; done
uid=507(sshnot1) gid=509(sshnot1) groups=509(sshnot1),508(nossh)
uid=508(sshnot2) gid=510(sshnot2) groups=510(sshnot2),508(nossh)
uid=509(sshnot3) gid=511(sshnot3) groups=511(sshnot3),508(nossh)
uid=511(testssh) gid=513(testssh) groups=513(testssh)
uid=505(student) gid=506(student) groups=506(student)
# �Y�W�z�b���ä��s�b�A���t�ΡA�Цۤv�ظm�X�ӡIUID/GID �P���������P�]�S���Y�I

# 2. �ק� sshd_config �åB���s�Ұ� sshd �a�I
[root@www ~]# vim /etc/ssh/sshd_config
PermitRootLogin no  <==���b�� 39 ��A�Ю������ѥB�ק令�o��
DenyGroups  nossh   <==���U�o���i�H�[�b�ɮת��̫᭱
DenyUsers   testssh

[root@www ~]# /etc/init.d/sshd restart

# 3. ���ջP�[��������b���n�J���p�a�I
[root@www ~]# ssh root@localhost  <==�ýп�J���T���K�X
[root@www ~]# tail /var/log/secure
Jul 25 13:14:05 www sshd[2039]: pam_unix(sshd:auth): authentication failure; 
logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost  user=root
# �A�|�o�{�X�{�o�ӿ��~�T���A�Ӥ��O�K�X��J���~�Ӥw�C

[root@www ~]# ssh sshnot1@localhost  <==�ýп�J���T���K�X
[root@www ~]# tail /var/log/secure
Jul 25 13:15:53 www sshd[2061]: User sshnot1 from localhost not allowed because
a group is listed in DenyGroups

[root@www ~]# ssh testssh@localhost  <==�ýп�J���T���K�X
[root@www ~]# tail /var/log/secure
Jul 25 13:17:16 www sshd[2074]: User testssh from localhost not allowed 
because listed in DenyUsers

�q�W�������G�ӬݡA�A�N�|�o�{��A���P���n�J�b���|���ͤ��@�˪��n���ɵ��G�C�]���A���A�ѬO�L�k���Q�ϥ� ssh �n�J�Y�@���D���ɡA�O�o��Ӧ��A���W�h�ˬd�ݬݵn���ɡA�����w�N�|���Q�����A�ѨM���D�o�I�b�ڭ̪����վ��W���A���٬O��� root ���n�J��I

�|�Ҩӻ��A�A�� sshd �u�Q�������H�ΰϺ������D���ӷ�����n�J���ܡA���N�o�˧@�G

[root@www ~]# vim /etc/hosts.allow
sshd: 127.0.0.1 192.168.1.0/255.255.255.0 192.168.100.0/255.255.255.0

[root@www ~]# vim /etc/hosts.deny
sshd : ALL 

�h�X�h�O�@�]�ܦn���I�ҥH�]�i�H�ϥ� iptables ��I �ѦҡG�ĤE���B������P NAT ���A��������ڸ}���{���A�A���Ӧb iptables.rule ���N port 22 �����\������A�M��A�� iptables.allow �̭��s�W�o��G

[root@www ~]# vim /usr/local/virus/iptables/iptables.allow
iptables -A INPUT -i $EXTIF -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i $EXTIF -s 192.168.100.0/24 -p tcp --dport 22 -j ACCEPT

[root@www ~]# /usr/local/virus/iptables/iptables.rule

�W�z����k�B�z������A�p�G�A�٬O�@�����վ��A����O�o�n�N�]�w���٭�^����I�̫�A �y�����I�~�j�a�A���n�}�� SSH ���n�J�v�����Ҧ� Internet �W�����D�����z �o�ܭ��n���]���p�G���i�H ssh �i�J�A���D���A����...�ӦM�I�F��


11.3 �̭�l�ϧΤ����G Xdmcp �A�Ȫ��ҥ�

�Ҽ{�@�ӱ��p�A�p�G�A�� Linux �D���D�n�O�Ψӧ@���ϧγB�z�ɡA�ӥB�P�ɦ��h�H�ݭn�Ψ쨺�ӥ\��A ����@�� Linux �O�_�@���ȯണ�Ѥ@�ӤH�B�z���ӳn��O�H�K�K�I���i���@�w��I�]�� Linux ���۷��u�q�� X Window System �ڡI�{�b�N�ӽͽͲĤ@�ӹϧΤ��������ݳs�u���A���a�I


11.3.1 X Window �� Server/Client �[�c�P�U����

�ѩ�ڭ� Linux �ϥΪ��ϧΤ����O�ҿת� X-Window System ���F��A�o���N��O����󥭥x���A�ثe�b Linux �W�Y�}�o���ϧΤ����n��A�X�G���O�ϥγo�� X ���[�c�ӳB�z�A�ҥH�o�A�A�N����������D X Window �աI �ڭ̦b��¦�g�ĤT�����G�Q�|���w�g���L X Window �աA �]���o�̥u�|�@��²�檺���СA�H��K�j�a���A�Ѭ���ڭ̪��n��O�o��w�˻P�]�w��I

X Window System �b�B�@���L�{���A�S�]�����Ƥ��P�Ӥ��� X Server �P X Client ��ص{�ǡA���M���O X Server/Client �A ���O�L���@�Ϋo�P�����D���� Server/Client �[�c�j���������ӻ��� X Server/Client �o��ص{�ǩҭt�d�����ȥ��G

�����`�`�}���������A X server �N�O�e���A�� X client �N�O�⮳�e�����e�a�C�A�o�n�����e�� (�޲z�n�Ҧ��i��ܪ��w���) ����e�a���Q�k (�p��X�Ӫ�ø�ϼƾ�) �~���ø�s��e���W�I

�ѩ�C�@�� X client ���O�W�ߦs�b���{�ǡA�]���b�ϧ���ܷ|�o�ͤ@���|�Ϫ����D (�Q���@�U�C�@�� X client ���O�@�ӫܦۧڪ��e�a�A �C�ӵe�a�����ӻ{��誺�s�b�A�����U�۪��b�e���W���@�e�A�̫᪺���G�|�O�p��H)�C�]���A��ӴN���@�կS���� X client �b�i��޲z�Ҧ�����L X client �{���A�o���`�ު��N�N�N�O Window Manager�I

�J�M X Window System �O Linux �W�����@�յ{���A���򥦦p��Ұʪ��O�H�������ϥΪ̦b�n�J�t�Ϋ�A�����n�ۤv���Ұ� X server �{���A�M��A�ҰʭӧO�� Window manager �A�Y����L�ݨD�A�A�Ұʨ�L�B�~�� X client �N�O�F�C�o��·СI�ҥH���F²�ƱҰʭӤH�ϧΤ������B�J�A����٦��ҿת� Display Manager (DM) �o���N��I

�b�ثe�s���X�� Linux distributions ���A�q�`�ҰʹϧΤ������ϥΪ̵n�J���覡���A���O������ Display Manager �{���A �ӵ{���|�D�ʸ��J�@�� X Server �{���A�M��A���Ѥ@�ӵ��ݿ�J�b���K�X�������{���A����A�ھڨϥΪ̪���ܥh�Ұʩһݭn�� Window Manager �{���A�̫�N�ѨϥΪ̪����ާ@ WM �Ӫ��ϧΤ����o�C

���D�G
�b CentOS 6.x �����A�Y�w�]�� init 5 �����p�U�A����̲ױҰʹϧΤ������O���@���{���H
���G
���R /etc/init/* �������ɮסA�|�o�{�����ɮת����e�O�o�ˡG
[root@www ~]# cat /etc/init/prefdm.conf
start on stopped rc RUNLEVEL=5
stop on starting rc RUNLEVEL=[!5]
console output
respawn
respawn limit 10 120
exec /etc/X11/prefdm -nodaemon
�A�i�H���R /etc/X11/prefdm �����e�A�N����o�{���Ӧ�Ұʪ��N�O�@�� X display manager �{���F��I

���D�G
�n�J init 5 �� CentOS 6.x ���e�A���� tty1 �h�d�\�@�U X server �O�ѭ��@��{���ҳ�����H
���G
�ڭ̥i�H�z�L pstree ���[��{�Ƕ��������ʳ�I�P�ɪ`�N�A�w�]�� CentOS 6.x �� X server �{���W�٬� Xorg �����C
[root@www ~]# pstree -p
init(1)-+-NetworkManager(1086)
....(�����ٲ�)....
        |-gdm-binary(2642)---gdm-simple-slav(2661)-+-Xorg(2663)
        |                                          |-gdm-session-wor(2746)
....(�᭱�ٲ�)....
�ѤW�z����ƨӬݡAgdm-binary �i�H��� Xorg ��I�P�z�A�ڭ̤]�|���D���ѻ{�Ҫ��ϧεe�����ӬO�� gdm-session �Ҵ��Ѫ���I

�� X server, X client ���b�P�@���D���W�����ɭԡA�A�i�H�ܻ��P���Ұʤ@�ӧ��㪺 X Window System�C ���O�p�G�A�Q�n�z�L�o�Ӿ���b�����W���Ұ� X �O�H���ɧA�o���b�Τ�ݱҰʤ@�� X server �N�ϧΤ���ø�ϩһݭn���w��˸m�t�m�n�A �åB�Ұʤ@�� X server �`����������f (�q�`�O port 6000)�A�M��A�Ѧ��A���ݪ� X client ���oø�ϼƾڡA�A�N���ø�s�����o�C �z�L�o�Ӿ���A�A�i�H�b����@���Ұ� X server �n�J���A����I�ӥB���ާA���@�~�t�άOԣ�O�I�N�q�N���U�ϡA �p���@�ӡA�A�N�i�H���o���A���Ҵ��Ѫ��ϧΤ������ҰաI

X server/client ���[�c
�� 11.3-1�BX server/client ���[�c

���O�p�G�A�O�ϥγ̲ª���k�b�Τ�ݦۤv�Ұ� X server �A�M��b�i�D���A���N X client �{���@�Ӥ@�Ӫ����J�^�ӡA ���N�Ӳ֤H�F�a�I�ڭ̤��e�W�����O����L�i�H�� display manager �Ӻ޲z�ϥΪ̪��n�J�P�Ұ� X �ܡH�����A���ण�ണ�Ѥ@���������A�ȡA ���ڭ̪����z�L���A���� display manager �N������ѧڭ̵n�J���{�һP���J�ۤv��ܪ� window manager ���ܡA�o�˴N�ӴΤF�I ����F��ܡH���M�i�H�ڡI���N�O�z�L Xdmcp (X display manager control protocol) (��3) �աI

Xdmcp �Ұʫ�|�b���A���� udp 177 �}�l��ť�A�M����Τ�ݪ� X server �s�u����A���� port 177 ����A �ڭ̪� Xdmcp �N�|�b�Τ�ݪ� X server ��W�ϥΪ̿�J�b�K���ϧΤ����{���o�I���A�N��z�L�o�� Xdmcp �h���J���A���Ҵ��Ѫ����� Window Manager ������ X client �o�I���A�N������o�ϧΤ��������ݳs�u���A�����I�٧a�I

���򤰻�ɭԷ|�X�{�h�ϥΪ̳s�J���A�����o X �����p�O�H�H�������Ҥl�ӻ��A��������Ǧ��@�� Linux �b�i��ƭȼ����A �L��X�����G�O NetCDF �ɮסA�ڭ̥����ϥ� PAVE �o�@�M�n��h�B�z�o�Ǹ�ơC���O�ڭ̦���T�ӤH�P�ɳ��|�ϥΨ쨺�ӥ\��A ���� Linux �D���O��b���[�d�̭����A�n�ڭ����b���Ӥp�p���Ŷ��e���y���ۡz�ާ@�q���A�i�u�O�Q�H���ڡ� �o�ӮɭԡA�ڭ̴N�|�[�]�ϧΤ��������ݵn�J���A���A���ڭ̥i�H�y�h�H�P�ɥH�ϧΤ����n�J Linux �D���z�Ӿާ@�ڭ̦ۤv���{�ǡI�ܴΡA���O�ܡI


11.3.2 �]�w gdm �� XDMCP �A��

�J�M�O�ҿת� Xdmcp ��w�A����O�_�N���ۻP X display manager �����O�H�S���աI Xdmcp ��w�O�� DM �{���Ҵ��Ѫ��C �ڭ̪� CentOS �w�]�� DM �� GNOME �o�ӭp�e�Ҵ��Ѫ� gdm ���I�]���A�A�Q�n�Ұ� Xdmcp �A�ȡA���N�o�n�w�� gdm �o�ӵ{���ӳ]�w�o�C �o�� gdm ���]�w��Ƴ���m�b /etc/gdm/ �ؿ��U�A�ӧڭ̩ҭn�ק諸�]�w�ɨ��ȬO�@�� /etc/gdm/custom.conf (��4) �ɮצӤw�C

X11 ���Ѫ� display manager �� xdm �A�ӵۦW�� KDE �P GNOME �]�����ۤv�� display manager �޲z�{�ǡA���O�O kdm �P gdm �C�A�i�H�z�L�T�̤�����@�̪� display manager ���]�w�ɨӱҰ� xdmcp �o�Ө�w�O��

���L�A�]���ڭ̦w�˪���ǬO�yBasic server�z�A�ҥH�ܦh�ϧΤ����n��èS���Q�w�˰_�ӡC�]���A�b��@ Xdmcp ���e�A�ڭ̱o���w�˹ϧΤ����~���I�ϥ� yum groupinstall �Ӧw�˧a�I

# ���ˬd�ݬݻP X �������n��s�զ����ǡH
[root@www ~]# yum grouplist
   Desktop
   Desktop Platform
   X Window System
# �o�T�Ӻ�O�̭��n�����ؤF�I�o�n�w�˰_�Ӥ~���Igdm �O�b Destop ���I 

[root@www ~]# yum groupinstall "Desktop" "Desktop Platform" \
> "X Window System"

�W���i�槹����A�{�b�~��}�l�d�w custom.conf �աI�Ӹժ��ݬݡI

[root@www ~]# vim /etc/gdm/custom.conf
[security]           <==�b�P��w�譱��������T�A�j�h���n�������Ʃy
AllowRemoteRoot=yes  <==xdmcp �w�]���\ root �n�J�A�o�γo�Ӷ��ؤ~��H root �n�J
DisallowTCP=false    <==�o�Ӷ��ئb���\�Τ�ݨϥ� TCP ���覡�s�u�� xdmcp

[xdmcp]              <==�N�O�o�Ӥp�`�����I���@�o�I
Enable=true          <==�Ұ� xdmcp ���̭��n�����o�I
# �W�z�S���r�骺�����N�O�A�o�n�ۤv�s�W�����e�o�I

[root@www ~]# init 5
# �W�z�o�ӫ��O�|������ X �ϧεe���A�p�G�T�w�n�ϥ� gdm�Arunlevel �o�վ�� 5 �~�n
# �G�u�p�����ܡA���N�o�n�վ� /etc/inittab �o�I

[root@www ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address  Foreign Address   State    PID/Program name
tcp        0      0 0.0.0.0:6000   0.0.0.0:*         LISTEN   4557/Xorg
tcp        0      0 :::6000        :::*              LISTEN   4557/Xorg
udp        0      0 0.0.0.0:177    0.0.0.0:*                  4536/gdm-binary
# �W�z�� port 6000 �O�� DisallowTCP=false ���رҰʪ��Aport 177 �~�O�ڭ̭n��

�W�z���ʧ@�����O�b runlevel 3 ���U�Ұʪ��A�p�G�A�O�b runlevel 5 ���U�ɡA�]���A�]�i�H�Q�Ρy init 3 && init 5 �z�ӭ��s�ҰʹϧΤ����C���p�G�A�O�b runlevel 3 ���U�åB���Ʊ��ܧ󦨬� runlevel 5 �O�H���S�Ӧp��Ұ� port 177 �ڡH�p�G�O�o�˪��ܡA����A�i�H�o�˱Ұ� xdmcp �աG

[root@www ~]# init 3
[root@www ~]# runlevel
5 3 <==���䪺�O�e�@�� runlevel�A�k�䪺�O�ثe���A�]���ثe�O runlevel 3
[root@www ~]# gdm   <==�o�˴N�Ұ� xdmcp �o�I
[root@www ~]# vim /etc/rc.d/rc.local
/usr/sbin/gdm

�{�b�A���D�p��b���P�� runlevel �Ұ� xdmcp �F�a�H�p�G�O runlevel 5 �A�]���b /etc/inittab �N�w�g���۰ʱҰ� gdm �F�A �ҥH�A�u�n���Q�Ұ� runlevel 5 �Y�i�C���p�G�A�O�b runlevel 3 ���ܡA�]���o�� gdm �N���|�Q�t�Ϊ��Ұʬy�{�ҰʡA ���A�u�n�ۤv�b /etc/rc.d/rc.local �̭����w�ҰʥL�o�I�o���A�ѩI�H���L�A�J�M�A���n�ϥ� xdmcp �F�A�ҥH��ij�z�����Ұʦb runlevel 5 �Y�i�I���U�ӡA�A�o�n�}��Τ�ݹ�A�� port 177 �s�u�~��I �Цۦ�ק�A��������W�h�A�}�� udp port 177 �a�I�����o�̰��]�A�ϥγ�����������}���A���A�o�˧@�N�n�F�G

[root@www ~]# vim /usr/local/virus/iptables/iptables.rule
iptables -A INPUT -p UDP -i $EXTIF --dport 177 --sport 1024:65534 \
 -s 192.168.100.0/24 -j ACCEPT #xdmcp
# �`�N��I�S�I�O�ϥ� UDP ��f�H�Υ[�J�ӷ��� IP ���쪺���ޡI

[root@www ~]# /usr/local/virus/iptables/iptables.rule
[root@www ~]# iptables-save | grep 177
-A INPUT -s 192.168.100.0/24 -i eth0 -p udp -m udp --sport 1024:65534 --dport 177 -j ACCEPT
# �T�꦳�}�� port 177 �A�ӥB�O udp ����f��I�n�`�N�o��Ӷ��ءC

11.3.3 �Τ�t�ά� Linux ���n�J�覡

�ѩ� Linux �����������N�O�� X server ���ѨӪ��A�]���ϥ� Linux �n�J���ݪ��ϧΦ��A���O��²�檺�աI ���O�]���Ұ� X ���覡���P�Ӥw�ƺرҰʤ覡�A���U�ڭ̴N������ӱ`�����Ұʤ覡�G

�p�G�A���Τ�ݤw�g�b runlevel 5 �F�A�]�����A�w�g���@�� X ���������ҡA�o�����Ҫ���ܲ׺ݾ��N�٬��y :0 �z�C �b CentOS 6.x �����Ҥ��A�p�G�쥻�N�O runlevel 5 �����ҡA����o�ӹϧΤ����� :0 �O�b tty1 �׺ݾ��աI�p�G�O�� runlevel 3 �ҰʹϧΤ����A���N�O�b tty7 ��I�ѩ�w�g���@�� X �F�A�]���A�����n�b�t�~���׺ݾ��Ұʥt�@�� X �~��I���ӷs�� X �N�٬� :1 �����A���q�`�N�b tty7 �� tty8 �աI���]�� X server �n���� X client �����n�����v�~��A �ҥH�A�o���b���������}�񱵨��Ӧۦ��A���� X client ��ơC

���~�A���M�A�b�Τ�ݬO�H�D�ʪ��覡�s������A���� udp port 177 �A���O���A���� X client �o�|�D�ʪ��s����A�Τ�ݪ� X server�A�]���A�A�����n�}��Ӧۦ��A���ݥD�ʹ�A�� TCP port 6001 (�]���O :1 ����) ��������s�u�~����I���N�ӹ갵�ݬݡG

# 1. ��� X client �ǨӪ���ơG�b X Window ���e�������ҥ� shell ��J�G
[root@clientlinux ~]# xhost + 192.168.100.254
192.168.100.254 being added to access control list
# �`�N�I�A�O�Τ�ݡI�B���]�ڭ�診�� Linux �D���� IP �� 192.168.100.254

# 2. �}�l��樾����A�]���ڭ̱Ұ� port 6001 �A�ҥH�A�b�Τ�ݳo�˧@�G
[root@clientlinux ~]# vim /usr/local/virus/iptables/iptables.allow
iptables -A INPUT -i $EXTIF -s 192.168.100.0/24 -p tcp --dport 6001 -j ACCEPT

[root@clientlinux ~]# /usr/local/virus/iptables/iptables.rule
[root@clientlinux ~]# iptables-save
-A INPUT -s 192.168.100.0/24 -p tcp -m tcp --dport 6001 -j ACCEPT
# �n��ݨ�W���o�@��~����I

# 3. �b��r���� (�Ҧp tty1) �U��J�p�U�����O�G
[root@clientlinux ~]# X -query 192.168.100.254 :1
# �i�J X Window �o�I

�p�G�@�����Q���ܡA����A�b clientlinux.centos.vbird �N�|�ݨ�p�U���e��(�`�N�D���W��)�G

�b�Τ�ݳs�W Xdmcp ���\���e��
�� 11.3-2�B�b�Τ�ݳs�W Xdmcp ���\���e��

�b�W�Ϥ���J���T���b���P�K�X����A�A�b tty8 (:1) �N�|���ӵ��������o�I���A�p�G�Q�n�^�쥻�������������A �N�^�� tty7 (:0) �Y�i�������\�I(�b runlevel 5 �ɡA:0 �b tty1 �A�� :1 �b tty7 ��I)���Q�n���� tty8 �Ӧp��O�n�H�A������b tty8 �n�X�աA�]���n�X��A�t�η|���s�}�@�ӵ��ݵn�J���e���A�A�٬O�S��k�������C�A�o�n�^����Ұ� X �� tty1 �M����U [ctrl]-c ���_�s�u�Y�i�I

�p�G�`�`�b tty7, tty8 �����ӥh���ܡA���ӷ|�ѰO�쩳�b���Ӥ����F�A�ר�O���A���ୱ���@�Ҥ@�ˮɡA ���N�����P�_�F�C���S����k�����b tty7 �Ұʥt�@�ӵ����Ӹ��J���ݦ��A�����ϧΤ����O�H�i�H���A���N�z�L Xnest �a�I �o���O�ݭn�b X �����ҤU�ϥγ�I����²��Ϊk�p�U�G

[root@www ~]# Xnest -query �D���W -geometry �ѪR�� :1
�ﶵ�P�ѼơG
-query    �G�᭱�� xdmcp ���A�����D���W�٩� IP �o
-geometry �G�᭱���e�����ѪR�סA�Ҧp 1024x768 �� 800x600 ���������ѪR��

# �ھڤW�z��ơA�ϥ� 800x600 �s�W 192.168.100.254 �����D���G
[root@www ~]# yum install xorg-x11-server-Xnest
[root@www ~]# Xnest -query 192.168.100.254 -geometry 640x480 :1

�p�G�@�����Q���ܡA���A�N�|�b tty7 ������ X ���ҤU�ݨ�p�U���e�� (���U���e���O�w�g�n�J�����p�I)

�b�Τ�ݪ� X ���Q�s�W Xdmcp ���e��
�� 11.3-3�B�b�Τ�ݪ� X ���Q�s�W Xdmcp ���e��

�@�}�l���ϥܷ|�P�� 11.3-2 �@�ˡA�N�O�X�{��J�b�K���e���A�p�G��J���T���b�K��A �N�|�X�{�W�z���ϥܤF�C�J�Ӭݤ@�U�e���������׺ݾ����Y�A�A�N�|�o�{�T��O�ⳡ�D�����ୱ�O�I�o�˦��S����δΡH ^_^�I �n�����o�� X �N²��h�F�I�������U�����A�Ϊ̬O���_���� Xnest ���{���Y�i�C


11.3.4 �Τ�t�ά� Windows ���n�J�覡�G Xming

�ѩ� Windows �����èS�����ѹw�]�� X server �A�]���ڭ̱o�n�ۦ�w�� X server �b Windows �W���~��C �ثe�`���� X server �����U�o�X�ӡG

�䤤 X-Win32 �P Exceed ���ݩ�ӷ~�n��A�� Xming �h�ݩ󻴶q�Ū��ۥѳn��A���O���q�ŨëD�������n�A �ӬO�]�� Xming ���ɮׯu���ܤp�A�ӸӦ����\�ೣ���F�A�ҥH��O�ܤ��઺�@�ӳn���I�]�����U�����O�H Xming (��5) �@�d�ҨӤ��Ъ��C

  1. �w�ˡG�A�i�H�ϥιw�]����k�A�@���U�@�B���w�ˤU�h�A�N������Q���w�˦n Xming �o�M X server ���n���o�C

  2. �ҰʡG�Цb�y�}�l�z-->�y�{�����z-->�yXming�z-->�yXLaunch�z�}�ҳ]�w�s�u�� xdmcp ���覡�C���U�ڭ̷|�ϥΰϺ������s�� (broadcast) �ӧ�� xdmcp ���A�����覡�C�Ұ� XLaunch ����|�X�{�p�U���ϥܡG

    Xming �� Xdmcp �s���覡�ܷN��
    �� 11.3-4�BXming �� Xdmcp �s���覡�ܷN��

    �O�o�W�����ϥܭn��� One window �� Fullscreen �� One window without titlebar �~����ϥ� XDMCP ��I��ܧ�������y�U�@�B�z �N�|�X�{�p�U���e���G

    Xming �� Xdmcp �s���覡�ܷN��
    �� 11.3-5�BXming �� Xdmcp �s���覡�ܷN��

    �W�z���ϥܷ����@���T�ضǻ� X client ����k�A�b�o�Ӥp�`�����ڭ̭n�s�� xdmcp �A�ҥH�A�o�n��ܲĤT�ӳ�I����A�U�@�B�|�X�{�U�ϡG

    Xming �� Xdmcp �s���覡�ܷN��
    �� 11.3-6�BXming �� Xdmcp �s���覡�ܷN��

    �o�̷��M�N�O�s����A�Q�n�s�W�h�� xdmcp ���A���o�I�N�L�� IP ��W�h�a�I����A�U�@�B�h�G

    Xming �� Xdmcp �s���覡�ܷN��
    �� 11.3-7�BXming �� Xdmcp �s���覡�ܷN��

    �W�Ϫ����ػP��ƪ����۽ƻs�K�W�����A�O�d�w�]�ȧY�i�C���U�U�@�B�a�I

    Xming �� Xdmcp �s���覡�ܷN��
    �� 11.3-8�BXming �� Xdmcp �s���覡�ܷN��

    �X�{�W�ϴN�O�]�w�����F�A�������U�y�����z����A�A�N�|�o�{�p�P�� 11.3-2 ���e���X�{�A�A�N����}�l�b Windows ���U�s�W�ϧΤ����� Linux Server �o�I�ܻ��P�a�I

���q�W�����]�w�����A�|�o�{�A XDMCP ���׬O�b Server �٬O Client ���]�w�W������²��I���O���ɭԧA�N�O�|�o�{�A �����Ҧ����ʧ@�������F�A���O�N�O�S����k�s�W Xdmcp ���A���I�̮e���o�Ϳ��~�����N�O������աI�]�����M�ڭ̥Τ�ݱҰ� X server ��A�|�D�ʳs�u����A���ݪ� Xdmcp (port 177)�A���O�A���U�ӫo�O���A���D�ʳs�u��ڭ̥Τ�ݪ� X server (�i��O port 6000~6010)�C �]���A�p�G�A�u�O�]�w�F���A����������Ӥw�A����ܥi��X�{���D�����ӴN�O�Τ�ݪ�������ѰO���}���Ѧ��A���D�ʳs�u���W�h�o�I �o�I�O�����n��j�a��������I


11.4 ���R���ϧΤ����G VNC ���A��

�N�p�P���W�Y���쪺�A�ϥ� xdmcp �i��|�Ұʦh�Ӥ��P����f�A�ɭP������]�w�W������x�Z�ǡC�����S��²��@�I���ϧΤ����s���覡�H ����٦��ܦh�աA�b�o�̧ڭ̥������@�Ӥ��²�檺�A���N�O VNC (Virtual Network Computing) �o���N��աI(��6)


11.4.1 �w�]�� VNC ���A���G�ϥ� twm window manager

VNC server �|�b���A���ݱҰʤ@�Ӻ�ť�Τ�n�D����f�A�@���f���X�b 5901 ~ 5910 �����C���Τ�ݱҰ� X server �s�u�� 5901 ����A VNC server �A�N�@��w���]�w�n�� X client �z�L�o�ӳs�u�ǻ���Τ�ݤW�A�̲״N����b�Τ����ܦ��A�����ϧΤ����F�C

���L�ݭn�`�N���O�A�w�]�� VNC server ���O�W�ߴ��ѵ��y��@�z�@�ӥΤ�ݨӳs�u���A�]�����A�n�ϥ� VNC �ɡA �A�s�u����A���h�Ұ� VNC server �Y�i�C�ҥH�A�@��ӻ��A VNC server ���O�ϥΤ�ʱҰʪ��A�M��ϥΧ�����A �A�N VNC server �����Y�i�C��ӧ@�k����²���I�A�i�H�o�˧@�G

[root@www ~]# vncserver [:���X] [-geometry �ѪR��] [options]
[root@www ~]# vncserver [-kill :���X]
�ﶵ�P�ѼơG
:���X     �G�N�O�N VNC server �}�b���Ӱ�f�A�p�G�O :1 �h�N�� VNC 5901 ��f
-geometry �G�N�O�ѪR�סA�Ҧp 1024x768 �� 800x600 ������
options   �G��L X �������ﶵ�A�Ҧp -query localhost ������
-kill     �G�N�w�g�Ұʪ� VNC ��f�R���I�̾ڨ��������C

[root@www ~]# yum install tigervnc-server
# �o�ӬO�����n�����A���n��A�`�N�n�骺�W�ٳ�I�P���e���������P�I

# �N VNC server �Ұʦb 5903 ��f
[root@www ~]# vncserver :3

You will require a password to access your desktops.

Password:  <==��J VNC ���s�u�K�X�A�o�O�إ� VNC �ɩһݭn��
Verify:    <==�A��J�@���ۦP���K�X
xauth:  creating new authority file /root/.Xauthority

New 'www.centos.vbird:3 (root)' desktop is www.centos.vbird:3

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/www.centos.vbird:3.log

[root@www ~]# netstat -tulnp | grep X
tcp        0      0 0.0.0.0:5903   0.0.0.0:*      LISTEN      4361/Xvnc
tcp        0      0 0.0.0.0:6000   0.0.0.0:*      LISTEN      1755/Xorg
tcp        0      0 0.0.0.0:6003   0.0.0.0:*      LISTEN      4361/Xvnc
tcp        0      0 :::6000        :::*           LISTEN      1755/Xorg
tcp        0      0 :::6003        :::*           LISTEN      4361/Xvnc
# �w�g�Ұʩһݭn����f�o�I

�b�W�z�����O�ާ@���A�A�n���D���X�Ӷ��جO�G

  1. �K�X�ܤֻݭn���Ӧr��
  2. �̾ڨϥ� vncserver �������A�N���إߪ��K�X��m��ӱb���a�ؿ��U�C�Ҧp�W�z�������O�ϥ� root �����A�]���K�X�ɷ|��b /root/.vnc/passwd �o���ɮפ����O�Y���ɮפw�g�s�b�A�h���|�X�{�إ߱K�X���e���C
  3. ���Τ�ݳs�u���\��A���A���N�|�ǰe /root/.vnc/startx ���� X client ���Τ�ݳ�I

���p�G�A�Q�n�ק� VNC �K�X�O�H��²��A���N�ϥ� vncpasswd �a�I

[root@www ~]# ls -l /root/.vnc/passwd
-rw-------. 1 root root 8 Jul 26 15:08 /root/.vnc/passwd
[root@www ~]# vncpasswd
Password:  <==�N�O�o�̶}�l��J�s���K�X�ڡI
Verify:
[root@www ~]# ls -l /root/.vnc/passwd
-rw-------. 1 root root 8 Jul 26 15:15 /root/.vnc/passwd
# �ݧa�I�ɶ�����s��I�o���ɮת����e��ʹL�o�I

���U�Ӷ}�l��� 5903 �o�Ӱ�f���s�u������W�h�a�I�]���w�p�i��|�}�� 11 �� VNC ����f�A�ҥH���ܤ@�f��}�� 11 �Ӱ�f�a�I

[root@www ~]# vim /usr/local/virus/iptables/iptables.allow
iptables -A INPUT -i $EXTIF -s 192.168.100.0/24 -p tcp --dport 5900:5910 -j ACCEPT

[root@www ~]# /usr/local/virus/iptables/iptables.rule
[root@www ~]# iptables-save
-A INPUT -s 192.168.100.0/24 -i eth0 -p tcp -m tcp --dport 5900:5910 -j ACCEPT
# �n�ݱo��W���o��~ OK ��I

11.4.2 VNC ���Τ�ݳs�u�n��

�P xdmcp �������աA VNC �Τ�ݦb Linux �t�ΤW�����w�]���n��A���O�b Windows �t�ΤW���h�����n�B�~�w�˨�L�n��C �ڭ̥��ӽͽ� Linux �� VNC �Τ�n��a�I

�Φb Linux �Τ�ݪ� VNC �{���A���N�O vncviewer�C�u�O�A�o�ӳn��w�]�S���w�ˡA�ҥH�A�o�n�ϥ� yum �w�˧�����A�ӳs�u�a�I���L�@�˭n�`�N�A���A���ݪ�������@�˭n�]�w������I�M��}�l�b�Τ�ݪ��ϧΤ����W���橳�U��ơG

[root@clientlinux ~]# yum install tigervnc
[root@clientlinux ~]# vncviewer 192.168.10.254:3
# �o�ӫ��O�Ф@�w�@�w�n�b�ϧΤ����W������~���I�ܭ��n�I�O�ѤF�I
�b Linux �Τ�ݰ��� vncviewer �{�ǥܷN
�� 11.4-1�B�b Linux �Τ�ݰ��� vncviewer �{�ǥܷN

�b�W�Ϸ�����J��誺 root �� VNC �s�u�K�X�A�Ъ`�N��A�O VNC ���s�u�K�X�A�Ӥ��O root ���n�J�K�X�I �o��̬O�t�ܦh���I�]�ѩ�Ұ� VNC �������O root �A�]���o�̤~�ϥ� root �� VNC �s�u�K�X�C �ҥH�A�ܦh�ɨ�A�ڭ̳��O��ij�ϥΤ@�먭���ӱҰ� VNC server ���աI���A��J���T�� VNC �s�u�K�X��A �|�X�{�p�U���ϥ��o�G

�b Linux �Τ�ݰ��� vncviewer �{�ǥܷN
�� 11.4-2�B�b Linux �Τ�ݰ��� vncviewer �{�ǥܷN

�P�H�e�� VNC server ���j���t���A�b CentOS 6.x �����Atigervnc-server �o�M�n��|�D�ʪ��̾ڦ��A���ݪ��ϧΤ����n�J�覡�������T���ϧ���ܤ����A�Ӥ��O�H�e���˵����@�����઺ twm �Ӥw�I �o�˧ڭ̴N�i�H����ٱo�n�ק�@�Ǧ����S�����]�w�ɤF�I�u�O�ΡI �s�u���\��A�Цb�Τ�������o�� vncviewer ���s�u�A�]�����U�ӧڭ̭n�dzƥ� Windows �s�u����A���� port 5903 �o�I

Windows ���U�i�Ϊ� vnc client �n�餣�֡A���O����������x���O realvnc �o�a���q�X�~�� GNU ���ۥѳn��I �A�i�H�b���U���s���U�����²�檺�����A�O���ο����ۥѳn�骩����I(�����ȤU�����Φw�˪� viewer �����Ӥw�I)

�������� vnc-viewer �n��A�M��N�|�ݨ�p�U���e���G

Windows Real VNC �Τ�ݳs�u�ܷN��
�� 11.4-3�BWindows Real VNC �Τ�ݳs�u�ܷN��

�p�W�ϩҥܡA�A�b server ����W IP:port ����ƧY�i�A�M����U�yOK�z�a�I

Windows Real VNC �Τ�ݳs�u�ܷN��
�� 11.4-4�BWindows Real VNC �Τ�ݳs�u�ܷN��

�ѩ� VNC server �ݭn���ȬO�s�u�� VNC �K�X�Ӥw�A�]���W�Ϥ��� Username �i�H���ζ�A�ѹ껡�A�o�ӵ{�����]���|���A��� �����I�񧹫��U�yOK�z�Y�i�I���U�ӴN�|�X�{���T���e���o�I

Windows Real VNC �Τ�ݳs�u�ܷN��
�� 11.4-5�BWindows Real VNC �Τ�ݳs�u�ܷN��

11.4.3 VNC �f�t������ Xdmcp �e��

�p�G�]���Y�ǯS���]���A�A�o�n�ϥ� VNC �ӷf�t xdmcp ����X�ɡA���N�����b���A���z�L���U�����O�ӳB�z�Y�i�I �n�`�N��A�A�����n�w�g�ҰʤF xdmcp �F��I�ӥB�A�ڭ̩��U�ϥ� student �������ӱҰʳo�� VNC �a�I

# 1. �n�T�w xdmcp �w�g�ҰʤF�~�i�H�G
[root@www ~]# netstat -tlunp | grep 177
udp        0      0 0.0.0.0:177   0.0.0.0:*      1734/gdm-binary
# OK ���I�T�꦳�Ұʪ��աI�p�G�S���ݨ� 177 ���ܡA�^�� 11.3 �h�B�z�B�z

# 2. ������ student�A�åB�Ұ� VNC server �b :5
[root@www ~]# su - student
[student@www ~]$ vncserver :5 -query localhost
You will require a password to access your desktops.

Password:
Verify:
xauth:  creating new authority file /home/student/.Xauthority

New 'www.centos.vbird:5 (student)' desktop is www.centos.vbird:5

Creating default startup script /home/student/.vnc/xstartup
Starting applications specified in /home/student/.vnc/xstartup
Log file is /home/student/.vnc/www.centos.vbird:5.log

# 3. ���� xstartup ���Ұʤ��e
[student@www ~]$ vim /home/student/.vnc/xstartup
....(�e���ٲ�)....
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
# �N�o���ɮת����e�A�������[�W # ���ѱ�

# 4. ���s�Ұ� vncserver ��I
[student@www ~]$ vncserver -kill :5
[student@www ~]$ vncserver :5 -query localhost

���U���Шϥ� root �������[�J 5905 ����f������W�h�A�M��ۦ�ϥ� Linux �� vncviewer �� Windows �� RealVNC �ӳs�u�A�A�N�|�o�{�p�U���e���G

�z�L VNC �q�D���o xdmcp �e��
�� 11.4-6�B�z�L VNC �q�D���o xdmcp �e��

�ڭ̳o�� VNC ���s�u�{�ǬO student �����A���O�ڭ̫o�i�H�z�L xdmcp ���n�J�\��ӵn�J root ������I �]���b���A���W���� Xvnc �{�ǬO student �֦��A�o�˷|����n�աI�A�ѩI�H


11.4.4 �}���N�Ұ� VNC server ����k

�Ъ`�N�A�A���n�N vncserver �����O�g�J�b /etc/rc.d/rc.local ���A�_�h�i��|���� localhost �L�k�n�J�����D�C ���Ӧp�����A�� VNC server �b�@�}���N�ҰʦӤ����n�n�J������O�O�H�i�H���A���O�A�o�n�ק�@�U�]�w�ɡC �ڭ̩��U�ϥ� student �������Ұ� VNC server�A�ӱҰʪ��覡���ϥ� xdmcp �n�J�e���A�Ұʪ���f�N�w�b 5901 �n�F�C ���A���ӳo�˧@�G

[root@www ~]# vim /etc/sysconfig/vncservers
VNCSERVERS="1:student"
VNCSERVERARGS[1]="-query localhost"
# �W�z��檺 1 �����N�O���Ӱ�f 5901 ��I�n�`�N�I

[root@www ~]# /etc/init.d/vncserver restart
[root@www ~]# chkconfig vncserver on

�����n²��a�I�o�˨C���}���N�d�w�A�� VNC server �o�I


11.4.5 �P�B�� VNC �G�i�H�z�L�ϥܦP�B�о�

�t�~�A���ǪB�ͤ@�w�|ı�o�_�ǡA���N�O�A���ƻ�ڪ� VNC ���A���� server / client �ݵe���ä��O�P�B���O? �o�O�]�� Linux �������Ѧh�� VNC server �A�o�̬O�U�ۿW�ߪ��A�ҥH���M�N���|�P tty7 ���e���P�B�F�C ���O�p�G�A�Q�n�P Linux �� tty7 �P�B���ܡA�i�H�Q�� VNC ���X���� X Server �ϥΪ��Ҳըӥ[�H�]�w�Y�i�C

���ϥγo�ӼҲզ��ƻ�n�B�ڡH�N�O�i�H����ӹϧΤ����b server/client ���O�@�˪��A �ҥH�A�p�G�A�Q�n�ЧA���B�ͧA�O�p��]�w���A���N�i�H�z�L�o�Ӿ���ӳB�z�A�A���B�ͦb���ݴN������D�A�@�B�@�B�i�檺�L�{�I �o�˫ܤ���a�I�ԲӪ��@�k�i�H�Ѧҩ��U���s���G

�ڭ̤]�ӹ갵�@�U�a (�b CentOS 6.x �����èS�� xorg.conf �o�ӳ]�w�ɳ�I�ҥH�A�p�G�A�n�ϥγo�Ǹ�ƪ��ܡA ���ȱo�n�ۦ�ϥ� X -configure �h�ظm xorg.conf ��A�A���� /etc/X11/ �h�A�M��~�諸��]�w�I)�G

[root@www ~]# yum install tigervnc-server-module
[root@www ~]# vim /etc/X11/xorg.conf
Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        DefaultDepth     24
        # VBird
        Option "passwordFile" "/home/student/.vnc/passwd"
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

# VBird
Section "Module"
    Load    "vnc"
EndSection
# ���]�A�� vnc �K�X�ɮש�m�b /home/student/.vnc/passwd ���Y�A
# �o�ӮɭԴN�o�n�N�K�X�ɤ��e�g�� Screen �o�� section �����F

[root@www ~]# init 3 ; init 5
[root@www ~]# netstat -tlunp | grep X
tcp        0      0 0.0.0.0:5900   0.0.0.0:*      LISTEN      7445/Xorg
tcp        0      0 0.0.0.0:6000   0.0.0.0:*      LISTEN      7445/Xorg
tcp        0      0 :::6000        :::*           LISTEN      7445/Xorg
# �`�N�ݳ�I�o�X�� port �Ұʪ� PID ���@�˳�I�ҥH�|�Ұʤ@�� port 5900 �o�I

����A�i�H�ϥΡy vncviewer 192.168.100.254 �z�ӳs�u�Y�i�A���ݭn�[�W :0 ��������f�C �M��A�i�H�ݤ@�U�Τ�ݻP���A���ݪ��ϧΤ����A�A�|�o�{���̲��ʷƹ��ɡA��̪��e���|�P�B�B�@��I �D�`����O�I�u���L�o�Ӱʧ@�٬O�u���\�@�� VNC �s�u�A�������Ҧ��Τ�ݳ��s�� port 5900 �A�o�u�O�ӥi���F�I


11.5 ���������ݮୱ�t�ΡG XRDP ���A��

�ϥΤW�����ϧΤ������s�u���A�������@�Ӱ��D�A���F�s�u������P���~�A�W�Y�� Xdmcp �P VNC ��h�W�A��Ƴ��S���[�K�C �]���W�����ʧ@�j�h�ȾA�X�ϰ�������B�@�A���n�s�W Internet ����n�C���p�G�A�u���Q�n�z�L�[�K���覡�B�@ VNC�A ���i��o�n�z�L�U�@�p�`�����Ф~������n���B�z���G�C����ڭ̪��D Windows �����ݮୱ (Remote Desktop Procotol, RDP, ��7) ���O�㦳�s�u�[�K�\�઺�A�ҥH�A�ण��b Linux �W���ˤ@�� RDP Server �O�H�O�i�H���A���N�O XRDP ���A�� (��8)�C

�ܥi�����O�A�ڭ̪� CentOS 6.x �w�]�èS������ XRDP �����A���A�p�G�A�����쪺�ܡA�i�H�ۦ�sĶ xrdp �n��A ����������� Fedora ����|���Ѫ� RHEL �B�~�n��p�e (��9)�A�A�i�H�쩳�U���s���h���A�����������G

�����٬Oı�o yum �O�n�F��A�]��������쪺 CentOS 6.x x86_64 ���������}��A�N���]�w�b yum �]�w�ɤ��A�N�i�H�ϥ� yum �w�ˤF�G

[root@www ~]# vim /etc/yum.repos.d/fedora_epel.repo
[epel]
name=CentOS-$releasever - Epel
baseurl=http://download.fedora.redhat.com/pub/epel/6/x86_64/
gpgcheck=0
enabled=1

[root@www ~]# yum clean all
[root@www ~]# yum install xrdp

�o�˴N�w�˦n�F xrdp �n��F�A���ۤU�ӴN�o�n�}�l�ӳ]�w���o�I�ѹ껡�A�b�@�몺�D���W���w�˦n�o�� xrdp ����A�A�ڥ����ݭn�վ����]�w�ɡA�O�d�n�]�w�ɴN�n�F�A�M��Ұʥ��A�åB�]�w�}����ҰʡA���ӥu�n�λ��ݳs�u�s��o���D���A �t�δN�|�Ұ� 5910~5920 �H�W�� VNC ��f�A�M��A�N����z�L RDP ����w���o VNC ���e���A�̫�N����n�J�t���o�I

[root@www ~]# /etc/init.d/xrdp start
[root@www ~]# chkconfig xrdp on
[root@www ~]# netstat  | grep xrdp
tcp        0      0 127.0.0.1:3350  0.0.0.0:*     LISTEN    6615/xrdp-sesman
tcp        0      0 0.0.0.0:3389    0.0.0.0:*     LISTEN    6611/xrdp
# ���ݮୱ����f�O 3389 �A���O xrdp �|�A�s�쥻���� 3350 �h����@�� VNC ���s�u�C
# ���O�|���s�u���e�A�ä��|�_�ʥ��� VNC ��f�N�O�F�C

�p�G�A�O�ϥ� Windows �t�ΡA����z�L�y�}�l�z-->�y�{�����z-->�y�������ε{���z-->�y���ݮୱ�s�u�z�A �b�X�{���e������J�o�� xrdp ���A���� IP ����A�p�G���Q�s�W�N�|�X�{�p�U���e���G

�s�W���A���� XRDP �A�ȫ�A�|�X�{���s�u��T
�� 11.5-1�B�s�W���A���� XRDP �A�ȫ�A�|�X�{���s�u��T

�s�W���A���� XRDP �A�ȫ�A�|�X�{���s�u��T
�� 11.5-2�B�s�W���A���� XRDP �A�ȫ�A�|�X�{���s�u��T

��J���T���b���K�X�A�K�K�I�d�w�I�e���N�X�{�o�I�p�G�A�ٷQ�n��i�@�B���A�� xrdp ���]�w�ɡA����Ш� /etc/xrdp/ �ؿ����U�@�@�A�M��A�z�L man �h�ݬݬ������]�w�ɸ�T�A�N����z�ѳ]�w���o�I�������չL�A���έק����]�w�A �ϥλ��ݮୱ�N�w�g�ܶ��Z�o�I ^_^

���L�A�n�`�N���O�A�]�� xrdp �̲׷|�۰ʱҥ� VNC �A�]���A�٬O�����n�w�� tigervnc-server �~��I �_�h xrdp �����٬O�L�k�B�@����I


11.6 SSH ���A�����i������

�ƹ�W ssh �u���ܦn�ΡI�A�Ʀܤ��ݭn�Ұʬƻ� xdmcp, vnc, xrdp �����A�ȡA�ϥ� ssh ���[�K�q�D�N����b�Τ�ݱҰʹϧΤ����I ���~�A�ڭ̪��D�ܦh�A�ȳ��O�S���[�K���A����ण��N�o�ǪA�ȳz�L ssh �q�D�ӥ[�K�O�H�K�K�I���M�O�i�H�I �b�o�ӳ��`�����A�ڭ̴N�ӽͽͤ@�� ssh ���i�����Χa�I


11.6.1 �Ұ� ssh �b�D���W��f (�D port 22)

�q�e�������`�̭��ڭ̴N���g���L�A sshd �o�ӪA�Ȩ��ä��O�ܦw���A�ҥH�ܦh ISP �b�J�f�B�N�w�g�N port 22 �����F�I������n�o��@�O�H�o�O�]���ܦh�����޲z���èS���w�����i��n�� update �A�ӥB���F��K�A�S�ܶ}�ߪ��N port 22 ����@�ɶ}��C�ѩ�ܦh cracker �|�ϥα��y�{���ñ���� Internet ����f�|�}�A�o�� port 22 �N�O�@�ӫܱ`�Q���y����f�աI���F�����o�Ӱ��D�A�ҥH ISP �����A�����A���N port 22 �����I�o�]�O���F��ӰϺ��n�I

�u�O�A�������o�بS�� ssh �N�֭n�����U�h���H�A�����F port 22 ���������Y���h�F�I�S����k�u�@�ڡI �����H�S���Y�A���ڭ̥i�H�N ssh �}��b�D���W����f�C�p���@�ӡA cracker ���|���y��Ӱ�f�A�ӧA�� ISP �S�S����Ӱ�f�i�歭��A���A�N����ϥ� ssh �o�I�ܴΧa�I���N�ӸլݬݡC�ڭ̩��U�N ssh �}��b port 22 �� port 23 �լݬ� (�Ъ`�N�A port 23 ��������Q�ϥγ�I)�C

[root@www ~]# vim /etc/ssh/sshd_config
Port 22
Port 23    <==�`�N��I�n����� Port ���]�w�~��I

[root@www ~]# /etc/init.d/sshd restart

���O�o�@���� CentOS �o�N SSH �W�d port �ȯ�Ұʩ� 22 �Ӥw�A�ҥH���ɷ|�X�{�@�� SELinux �����~�I�����H�S���Y�A �ھ� setroubleshoot �����ܡA�ڭ̥����n�ۦ�w�q�@�� SELinux ���W�h���Ҳդ~��I���S�������O�H����ٺ�²��I ����y�{�O�o�˪��G

# 1. �� /var/log/audit/audit.log ��X�P ssh ������ AVC ��T�A���ର���a�Ҳ�
[root@www ~]# cat /var/log/audit/audit.log | grep AVC | grep ssh | \
>  audit2allow -m sshlocal > sshlocal.te  <==���ɦW�n�O .te �~��
[root@www ~]# grep sshd_t /var/log/audit/audit.log | \
>  audit2allow -M sshlocal  <==sshlocal �N�O���إߪ� .te �ɦW
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i sshlocal.pp   <==�o�ӫ��O�|�sĶ�X�o�ӭ��n�� .pp �ҲաI

# 2. �N�o�ӼҲո��J�t�Ϊ� SELinux �޲z�����I
[root@www ~]# semodule -i sshlocal.pp

# 3. �A���s�Ұ� sshd �åB�[���f�a�I
[root@www ~]# /etc/init.d/sshd restart
[root@www ~]# netstat -tlunp | grep ssh
tcp        0      0 0.0.0.0:22   0.0.0.0:*    LISTEN      7322/sshd
tcp        0      0 0.0.0.0:23   0.0.0.0:*    LISTEN      7322/sshd
tcp        0      0 :::22        :::*         LISTEN      7322/sshd
tcp        0      0 :::23        :::*         LISTEN      7322/sshd

���S����²��I�o�˧A�N����ϥ� port 22 �� port 23 �s�u��A�� sshd �A�ȳ�I

�ѩ�w�]�� ssh, scp, sftp ���O�s���� port 22 ���A����p��ϥγo�ǫ��O�s�u�� port 23 �O�H �ڭ̨ϥ� ssh ���m�ߦn�F�G

[root@www ~]# ssh -p 23 root@localhost
root@localhost's password:
Last login: Tue Jul 26 14:07:41 2011 from 192.168.1.101
[root@www ~]# netstat -tnp | grep 23
tcp  0  0 ::1:23               ::1:56645              ESTABLISHED 7327/2
tcp  0  0 ::1:56645            ::1:23                 ESTABLISHED 7326/ssh
# �]�������O���V���A�]���ۤv�s�ۤv (localhost)�A�N�|���Ⱖ�s�u�I

�o�ˡA�A�N����׹L�@�� ISP �Ϊ̬O cracker �����y�F�I�`�N�@�U�A���n�N port �}��b�Y�ǬJ������f�W�A �Ҧp�A�}��b port 80 ���ܡA���A�N�S����k�Ұʥ��`�� WWW �A�ȰաI�`�N�`�N�I


11.6.2 �H rsync �i��P�B�蹳�ƥ�

�ڭ̴��b��¦�g�ĤT���ĤG�Q�������Y�ͨ� Linux ���ƥ������A �ӽg�����б`�Ϊ��ƥ����O�A�]�A tar, dd, cp �����A���L���ɨå����к����A�ҥH���ӫܴΪ������u��S�����СA ���N�O�o�Ӧa��n�ͨ쪺 rsync �աI�o�� rsync �i�H�@���@�Ӭ۷��Ϊ����a�ƴ��t�Ϊ��ƥ����O��I �]�� rsync �i�H�F�������y��� (mirror) �z���\��O�I

rsync �̦��O�Q�n���N rcp �o�ӫ��O���A�]�� rsync �����ǿ骺�t�ק֡A�ӥB�L�b�ǿ�ɡA �i�H��糧�a�ݻP���ݥD�����ƻs���ɮפ��e�A�ӶȽƻs��ݦ��t�����ɮצӤw�A�ҥH�ǿ骺�ɶ��N�۹諸���C�ܦh�I ���~�A rsync ���ǿ�覡�ܤ֥i�H�z�L�T�ؤ覡�ӹB�@�G

���T�ضǿ�Ҧ��t���b�󦳨S���_�� (:) �Ӥw�A���a�ݶǿ餣�ݭn�_���A�z�L ssh �� rsh �ɡA�N�o�n�Q�Τ@�ӫ_�� (:)�A �p�G�O�z�L rsync daemon ���ܡA�N�o�n��ӫ_�� (::) �A���Ӥ����z�ѰաI�]�����a�ݳB�z��²��A �ӧڭ̪��t�Υ��ӴN������ ssh ���A�ȡA�ҥH�A���U�����N�������ЧQ�� rsync �z�L ssh �ӳƥ����ʧ@��C ���L�A�b�����e���̥��Ӭݬ� rsync ���y�k�a�I

[root@www ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path]
�ﶵ�P�ѼơG
-v �G�[��Ҧ��A�i�H�C�X��h����T�A�]�A�蹳�ɪ��ɮ��ɦW���F
-q �G�P -v  �ۤϡA�w�R�Ҧ��A���L���`��T�A����ܿ��~�T���F
-r �G���j�ƻs�I�i�H�w��y�ؿ��z�ӳB�z�I�ܭ��n�I
-u �G�ȧ�s (update)�A�Y�ؼ��ɮ׸��s�A�h�O�d�s�ɮפ��|�л\�F
-l �G�ƻs�s���ɪ��ݩʡA�ӫD�s�����ؼЭ�l�ɮפ��e�F
-p �G�ƻs�ɡA�s�P�ݩ� (permission) �]�O�s���ܡI
-g �G�O�s��l�ɮת��֦��s�աF
-o �G�O�s��l�ɮת��֦��H�F
-D �G�O�s��l�ɮת��˸m�ݩ� (device)
-t �G�O�s��l�ɮת��ɶ��ѼơF
-I �G������s�ɶ� (mtime) ���ݩʡA�ɮפ��W�|����ֳt�F
-z �G�b��ƶǿ�ɡA�[�W���Y���ѼơI
-e �G�ϥΪ��q�D��w�A�Ҧp�ϥ� ssh �q�D�A�h -e ssh
-a �G�۷��� -rlptgoD �A�ҥH�o�� -a �O�̱`�Ϊ��ѼƤF�I
��h�����аѦ� man rsync ���ѻ��I

# 1. �N /etc ����Ƴƥ��� /tmp ���U�G
[root@www ~]# rsync -av /etc /tmp
....(�e���ٲ�)....
sent 21979554 bytes  received 25934 bytes  4000997.82 bytes/sec
total size is 21877999  speedup is 0.99
[root@www ~]# ll -d /tmp/etc /etc
drwxr-xr-x. 106 root root 12288 Jul 26 16:10 /etc
drwxr-xr-x. 106 root root 12288 Jul 26 16:10 /tmp/etc <==�@�I��ӥؿ��@�ˡI
# �Ĥ@���B�@�ɷ|�����[���ɶ��A�]�������إ߹��I�p�G�A���ƥ��O�H

[root@www ~]# rsync -av /etc /tmp
sent 55716 bytes  received 240 bytes  111912.00 bytes/sec
total size is 21877999  speedup is 390.99
# ����@�U�⦸ rsync ���ǿ�P������ƶq�A�A�N�|�o�{�ߨ�N�]���F�I
# �ǿ骺��Ƥ]�ܤ֡I�]���A�����A�Ȧ��t�����ɮ׷|�Q�ƻs�C

# 2. �Q�� student �������n�J clientlinux.centos.vbird �N�a�ؿ��ƻs�쥻�� /tmp
[root@www ~]# rsync -av -e ssh student@192.168.100.10:~ /tmp 
student@192.168.100.10's password:  <==��J���D���� student �K�X
receiving file list ... done
student/
student/.bash_logout
....(�����ٲ�)....
sent 110 bytes  received 697 bytes  124.15 bytes/sec
total size is 333  speedup is 0.41

[root@www ~]# ll -d /tmp/student
drwx------. 4 student student 4096 Jul 26 16:52 /tmp/student
# �@�I�o�˴N���n�ƥ��աI��²��a�I

�A�i�H�Q�ΤW�����d�ҤG�Ӱ����ƥ� script ���ѦҡI���L�n�`�N���O�A�]�� rsync �O�z�L ssh �Ӷǿ��ƪ��A�ҥH�A�i�H�w�� student �o�ӳå�s�@�X�K�αK�X�n�J�� ssh ���_�I �p���@�ө��Ყ�a�ƴ��t�δN����۰ʪ��H crontab �Ӷi��ƥ��F�I²����z�I

�K�K�X�� ssh �b���ڭ̦b�W�Y�w�g���L�F�A���g shell script ����O�]�O�����n�����I�Q�� rsync �Ӷi��A���ƥ��u�@�a�I ^_^�I�ܩ��h�� rsync �Ϊk�i�H�Ѧҥ����᭱�ҦC�X���ѦҺ���(��10)��I

���D�G
�b clientlinux.centos.vbird (192.168.100.10) �W���A�ϥ� vbirdtsai �������إߤ@���}���A�o���}���i�H�b�C�Ѫ� 2:00am �D�ʪ��H rsync �t�X ssh ���o www.centos.vbird (192.168.100.254) �� /etc, /root, /home �T�ӥؿ����蹳�� clientlinux.centos.vbird �� /backups/ ���U�C
���G
�ѩ󥲶��n�z�L ssh �q�D�A�B�����n�ϥ� crontab �Ҧ�u�@�Ƶ{�A�]���֩w�n�ϥΪ��_�t�Ϊ��K�K�X�b���C�ڭ̦b 11.2.6 �p�`�w�g�͹L�����@�k�A vbirdtsai �w�g���F���_�P�p�_�ɮסA�]�����n�A�ϥ� ssh-keygen �F�A�����N���_�ɮ׽ƻs�� www.centos.vbird �� /root/.ssh/ ���U�Y�i�C ��ڧ@�k�i�H�O�o�˪��G
# 1. �b clientlinux.centos.vbird �N���_�ɽƻs�� www.centos.vbird �� root
[vbirdtsia@clientlinux ~]$ scp ~/.ssh/id_rsa.pub root@192.168.100.254:~

# 2. �b www.centos.vbird �W���� root �ظm�n authorized_keys
[root@www ~]# ls -ld id_rsa.pub .ssh
-rw-r--r--. 1 root root  416 Jul 26 16:59 id_rsa.pub <==�����_��
drwx------. 2 root root 4096 Jul 25 11:44 .ssh       <==�� ssh �������ؿ�

[root@www ~]# cat id_rsa.pub >> ~/.ssh/authorized_keys
[root@www ~]# chmod 644 ~/.ssh/authorized_keys

# 3. �b clientlinux.centos.vbird �W�����g script �ô��հ���G
[vbirdtsai@clientlinux ~]$ mkdir ~/bin ; vim ~/bin/backup_www.sh
#!/bin/bash
localdir=/backups
remotedir="/etc /root /home"
remoteip="192.168.100.254"

[ -d ${localdir} ] || mkdir ${localdir}
for dir in ${remotedir}
do
        rsync -av -e ssh root@${remoteip}:${dir} ${localdir}
done

[vbirdtsai@clientlinux ~]$ chmod 755 ~/bin/backup_www.sh
[vbirdtsai@clientlinux ~]$ ~/bin/backup_www.sh
# �W���b���հաI�Ĥ@�����եi��|���ѡA�]�������ѰO /backups �ݭn root
# ���v���~����إߡC�ҥH�A�бz�A�H root �������h mkdir �� setfacl �a�I

# 4. �إ� crontab �u�@
[vbirdtsai@clientlinux ~]$ crontab -e
0 2 * * * /home/vbirdtsai/bin/backup_www.sh


11.6.3 �z�L ssh �q�D�[�K�쥻�L�[�K���A��

�{�b�ڭ̪��D ssh �o�ӳq�D�i�H�[�K�A�ӥB�A�ڭ̧󪾹D rsync �w�]�w�g�i�H�z�L ssh �q�D�Ӷi��[�K�H�i���蹳�ǿ�C �J�M�p���A�����L���A�ȯण��z�L�o�� ssh �i���ƥ[�K�Ӷǰe��T�O�H���M�i�H�I�ܴΩO�o�ӥ\��I �n���й갵���e�A�ڭ̥��ιϥܨӽͤ@�U�@�k�C

���]���A���W�����ҰʤF VNC �A�Ȧb port 5901 �A�Τ�ݫh�ϥ� vncviewer �n�s�u����A���W�� port 5901 �N�O�F�C ���{�b�ڭ̦b�Τ�ݹq���W���Ұʤ@�� 5911 ����f�A�M��A�z�L���a�ݪ� ssh �s�u����A���� sshd �h�A�Ӧ��A���� sshd �A�h�s�����A���� VNC port 5901 �C��ӳs�u���ϥܦp�U�ҥܡG

�z�L���a�ݪ� ssh �[�K�s�u�컷�ݪ����A���ܷN��
�� 11.6-1�B�z�L���a�ݪ� ssh �[�K�s�u�컷�ݪ����A���ܷN��

���]�A�w�g�z�L�W�z�U�Ӥp�`�إߦn���A�� (www.centos.vbird) �W���� VNC port 5901 �A�ӥΤ�ݫh�S���Ұʥ��� VNC ��f�C ����A�Ӧp��z�L ssh �Ӷi��[�K�O�H��²��A�A�i�H�b�Τ�ݹq�� (clientlinux.centos.vbird) ���橳�U�����O�G

[root@clientlinux ~]# ssh -L ���a��f:127.0.0.1:���ݰ�f [-N] ���ݥD��
�ﶵ�P�ѼơG
-N �G�ȱҰʳs�u�q�D�A���n�J���� sshd ���A��
���a��f�G�N�O�}�� 127.0.0.1 �W���@�Ӻ�ť����f
���ݰ�f�G���w�s�u��᭱���ݥD���� sshd ��Asshd �ӳs����Ӱ�f�i��ǿ�

# 1. �b�Τ�ݱҰʩһݭn����f�i�檺���O
[root@clientlinux ~]# ssh -L 5911:127.0.0.1:5901 -N 192.168.100.254
root@192.168.100.254's password:
   <==�n�J���ݶȬO�}�Ҥ@�Ӻ�ť��f�A�ҥH�����ʧ@

# 2. �b�Τ�ݦb�t�@�Ӳ׺ݾ����լݬݡA�o�Ӱʧ@���ݭn�@�A�u�O�d�\�Ӥw
[root@clientlinux ~]# netstat -tnlp| grep ssh
tcp  0   0 0.0.0.0:22           0.0.0.0:*            LISTEN      1330/sshd
tcp  0   0 127.0.0.1:5911       0.0.0.0:*            LISTEN      3347/ssh
tcp  0   0 :::22                :::*                 LISTEN      1330/sshd
[root@clientlinux ~]# netstat -tnap| grep ssh
tcp  0   0 192.168.100.10:55490 192.168.100.254:22   ESTABLISHED 3347/ssh
# �b�Τ�ݱҰ� 5911 ����f�O ssh �Ұʪ��A�P�@�� PID �]�s�u�컷�ݳ�I

���U�ӧA�N�i�H�b�Τ�� (192.168.100.10, clientlinux.centos.vbird) �ϥΡy vncviewer localhost:5911 �z�ӳs�u�A ���O�ӳs�u�o�|�s�� www.centos.vbird (192.168.100.254) �����D���� port 5901 ��I���۫H�ܡH ���A�F�� VNC �s�u��A�� www.centos.vbird �����D���W���@�@�N���D�F�G

# 3. �b���A���ݴ��լݬݡA�o�Ӱʧ@���ݭn�@�A�u�O�d�\�Ӥw
[root@www ~]# netstat -tnp | grep ssh
tcp   0  0 127.0.0.1:59442     127.0.0.1:5901        ESTABLISHED 7623/sshd: root
tcp   0  0 192.168.100.254:22  192.168.100.10:55490  ESTABLISHED 7623/sshd: root
# ���㪺�ݨ� port 22 ���{�ǦP�ɳs�u�� port 5901 ��I

���p������o�ӳs�u�O�H������ VNC ����A�M��A�N clientlinux.centos.vbird ���Ĥ@�Ӱʧ@ (ssh -L ...) ���U [ctrl]-c �N���_�o�ӥ[�K�q�D�o�I�o�˷|�ϥΤF�ܡH�A�i�H�N�o�Ӱʧ@�Φb����A�ȤW��I


11.6.4 �H ssh �q�D�t�X X server �ǻ��ϧΤ���

�q�e�@�Ӥp�`�ڭ̪��D ssh �i�H�i��{�����[�K�ǻ��A��Y ssh �q�D�աI����i���i�H�Φb X �W���O�H �N��O���A���گण�ण�n�Ұʬƻ�ܽ����������A�N�O�b�즳���������U�ϥ� ssh �q�D�A�N�کһݭn�����A���W�����ϧΤ����ǹL�ӴN�n�F�H �O�i�H����I�����Τ@�� Windows �W���� Xming X server �@�d�Ҧn�F�C��Ӱʧ@�O�o�˪��G

���ڭ̴N�}�l�ӳB�z�@�U Xming �o�ӵ{���a�I�Ұ� XLaunch ����X�{�U�ϼҼˡG

�Ұ� XLaunch �{��-�����ܼҦ�
�� 11.6-2�B�Ұ� XLaunch �{��-�����ܼҦ�

�O�o�W�Ϥ��n��� Multiple windows �|����}�G��I�M����U�y�U�@�B�z�|�X�{�U�ϡG

�]�w XLaunch �{��-��ܳs�u�覡
�� 11.6-3�B�]�w XLaunch �{��-��ܳs�u�覡

�ڭ̭n�Ұʤ@���{���A�åB�O�}��b ssh/putty �������n�������i�� ssh �q�D���إ߳�I�M��U�@�B�a�C

�]�w XLaunch �{��-�]�w���ݳs�u�������Ѽ�
�� 11.6-4�B�]�w XLaunch �{��-�]�w���ݳs�u�������Ѽ�

Xming �|�D�ʪ��Ұʤ@�� putty ���{�����A�s�i sshd ���A���A�ҥH�o�̱o�n�����]�w�n�b���K�X��������T�C �����o�̰��]�A�� sshd �|������ root �n�J�A�]���o�̨ϥ� root ���v����I

�]�w XLaunch �{��-�O�_�䴩�ƻs�K�W�\��
�� 11.6-5�B�]�w XLaunch �{��-�O�_�䴩�ƻs�K�W�\��

�ϥιw�]�ȧa�I�����U�@�B�C

�]�w XLaunch �{��-�����]�w
�� 11.6-6�B�]�w XLaunch �{��-�����]�w

��²��I�o�˴N�����]�w�F�I�Ы��U�����A�A�N�|�ݨ� Windows ���ୱ���M�X�{�p�U���ϥܤF�I

Windows �ୱ�X�{�� X client �{��
�� 11.6-7�BWindows �ୱ�X�{�� X client �{��

�W���o���{���N�O xterm �o�� X ���׺ݾ��{���C�A�i�H�b�W����J���O�A�ӫ��O�|�ǰe�� Linux server �A �M��A�N�A�n���檺�ϧθ�Ƴz�L ssh �q�D�ǰe��ثe�� Windows �W���� Xming �A�A�� Linux �������αҰ� VNC, X, xrdp ���A�ȡI�u�n�� sshd �N�d�w�F�I�N�O�o��²��I�Ҧp������J�X�ӹC���{���A �A�� Windows ���� (�ݤu�@�C�N���D�F) �N�|�X�{�o�˪����p�G

�ƹ�W�A�ڭ̪� basic server �w�ˤ覡�èS�����A�w�� xterm ��I�ҥH�A�A�o�n�ۤv�w�� xterm �~��I yum install xterm �N�w�˦n�աI�M��W�����ʧ@�A���Ӥ@���A�N�i�H���\�o�I�ө��U���ϥܸ̭��������n��A �]�O�ݭn�A�ۤv�w�˪���I ^_^
Windows �ୱ�X�{�� X client �{��
�� 11.6-8�BWindows �ୱ�X�{�� X client �{��

11.7 ���I�^�U

11.8 �������D

11.9 �ѦҸ�ƻP�����\Ū

2002/11/14�G�Ĥ@������
2003/03/08�G�[�J���Y�����A�P�קﳡ�����e�A�Ҧp Telnet ���A���n�骺�w�˵����A�H�� SSH �� putty �ϥΤ��媬�A�I
2003/09/09�G�N����i��@�ǭ׭q�A���~�A�[�J�F�ҫ�m�ߡI
2005/07/02�G�N�ª��峹���ʨ� �o�� �C
2005/07/07�G�n���e���N VNC �٦� XDMCP ���L�g�F�g��j�a�������ѦҬݬݰڡ�
2005/07/09�G�[�J�F�� VNC �P tty7 �P�B�� vnc.so �Ҳժ�����
2005/11/22�G�[�J�F RSH ���A�� ��������ơI
2006/09/18�G�N putty �������ন pietty �����СI�]�� pietty ��n�ΡI�t�~�]�N rsh ���s��g�@�U�A�սZ�L�I
2006/09/19�G�[�J rsync ��²�������P�ާ@�I�̤好�����D�i�H�@�@�@�I
2011/02/15�G�N�ª���� CentOS 4.x ���峹���ʨ� ���B
2011/02/17�G�Եh�R�� telnet ���A���A�����u���ܤ֥ΤF��]�A���� rsh �]���A���СI�����쪺�аѦ� CentOS 4.x ���¤峹�a
2011/02/20�G�N sshd ���A���@��²�檺�ק�F�A�W�[�@�ǽg�T�ӻ����������D�P�갵�A�ר�O ~/.ssh/authorized_keys ���v��
2011/02/23�G�ק�F�\�h Xdmcp, VNC ���]�w�P�ϥܡA�̭��n�O�[�J xrdp ���w�˻P�ϥ�
2011/02/24�G�[�J Xming �z�L X11 forward from ssh ���覡�I
2011/07/25�G�N��� CentOS 5.x ���������ʨ����B
2011/07/26�G�N�Ҧ����ϥܥH�ά��������� IP �q�q�אּ CentOS 6.x �H�βĤT���ͨ쪺�Ϻ��[�c�o�I