凡夫不俗子 2012-02-12
SSH
SSH(Secure Shell Protocol)是一种加密的传输协定,利用非对称金钥系统。
公钥由伺服器端产生,并让用户端下载;用户端利用公钥产生私钥并传给伺服器端。
之后伺服器与用户端之间就以公钥加密,私钥解密的方式通讯。
所以正常的情况下,一台主机中,会有两把钥匙,「远端主机公钥」和「本地主机私钥」。
公钥存放的目录在~/.ssh/know_hosts,而私钥存放在/etc/ssh/ssh_host_key*。
使用者可以使用 #ssh [参数] [使用者名称]@[远端主机位址] 连结登入远端主机。
-X参数可以让ssh使用x-window通道,使用户端可以再本机上显示远端主机的图形介面。
也可以使用 #ssh -f [使用者名称]@[伺服器位址] [指令] 直接对远端主机下达指令,无须登入。
若不加-f参数,连线会卡在登入,但是指令仍会执行,必须等待远端主机指令跑完。
加上-f则会下完指令后马上登出远端主机,继续在本地主机工作。
ssh的设定档,用户端的存放于/etc/ssh/ssh_config,伺服器端的存放于/etc/ssh/sshd_config。
ssh伺服器端有几个比较重要的设定,PermitRootLogin是设定可否使用root身分登入。
AllowUser是设定允许登入的使用者,PasswordAuthentication是设定是否验证。
一般来说为了安全起见,会关闭允许使用root身分登入。
ssh同时也可以用于传送档案,#scp 可以用以上传或下载档案。
#scp [参数] [档案或目录] [使用者名称]@[远端主机位址]:[目的目录] 用以上传档案。
#scp [参数] [使用者名称]@[远端主机位址]:[档案或目录] [目的目录] 用以下载档案。
参数-p可以保留原本的权限,-r可以复制目录以下所有档案,-l可以限制传输的速度,单位为Kbits/s。
而 #rsync 可以将档案同步至远端主机中,用法与 #cp 类似。
指令为 #rsync [参数] [使用者名称]@[远端主机位址]:[档案或目录] [目的目录]。
常用参数有,-a为保存来源所有权限属性设定,-v为观察模式,-r可以同步目录以下所有档案。
为了省去登入时输入密码的步骤,使得ssh可以利用在自动排程上,可建立用户端公钥传至伺服器。
#ssh-keygen -t dsa 可以建立DSA演算法的钥匙,或者可用-t rsa建立RSA演算法的钥匙。
再使用 #ssh-copy-id -i .ssh/id_dsa.pub [使用者名称]@[远端主机位址] 送到远端主机。
如此下次登入时将不用再输入密码即可登入远端主机。
ssh还有一个特殊的功能ssh tunnel,可以让tcp的协定经由ssh传送,提高安全性。
#ssh -L [本地埠]:[远端主机位址]:[远端主机埠] [ssh转送伺服器]
参数-L是利用指定的本地埠转送,-P为利用socks方式连线,-N为不建立Shell。
简单的说,ssh可以让本地埠的封包经由ssh转送伺服器,将封包加密传送至远端主机上。
VNC
VNC类似Windows系统中的远端桌面,让使用者连线到远端主机时可使用图形化介面。
VNC Server是使用TigerVNC-Server,下载安装后可在/etc/sysconfig/vncserver设定。
设定档中,需在VNCSERVERS输入使用者,例如VNCSERVER="1:student"。
而该帐号的连线密码必须先切换到该使用者下,才可以利用 #vncpasswd 设定。
设定完成启动VNC Server后,用户端可用 #vncviewer 进行连线。
连线时位址后加上「:使用者编号」表示以该帐号登入,例如192.168.1.25:1表示以student登入。
跨系统的连结必须安装另外的程式。
如果Windows系统需要登入Linux系统的VNC Server,必须在Linux系统上安装Xrdp。
Xrdp不可使用root登入,且安装后需自行启动服务。
如果Linux系统希望连线到Windows系统的远端桌面,必须安装rdesktop。
#rdesktop -g [解析度] 可以调整远端画面的解析度。