Linux-3d-animation-w/SSH
Wikipedia,自由的百科全书
用</a>SSH进行远程管理</h3>
SSH是一个安全地访问远程服务器的工具,它可以对所有的传输数据包进行加密这样“中间人”的攻击方式就不可能实现,而且也能能够防止DNS和IP欺骗,同时它还对传输的数据进行了压缩(这个压缩率是可以调整的)以加快传输速度。
Contents |
如何快速连接到服务器
如果你管理了很多的服务器,哪么对你来说快速、安全的连接到指定的服务器上输入指定的命令是非常重要的。而SSH正好可以满足你的要求,你只用使用SSH servername后再输入密码就可以安全的连接到你要连接的服务器上。但是每天不段的输入ssh servername后再输入密码会不会让你厌烦呢?让我们来看看下面的例了,我想它会让你感到轻松一些:
ssh-keygen –t rsa
生成公钥和私钥对,这个大家都熟悉吧
接下来输入两次密码短语后ssh-keygen会在你的目录家下面生成一个.ssh/id_rsa和.ssh/id_pub的文件,这两个就是你的公钥、私钥对
接下来输入下面命令:
ssh servername “mkdir .ssh; chmod 0700 .ssh”
cps .ssh/id_rsa.pub servername:.ssh/authorized_keys2
现在你只用简单的输入sssh servername就可以不用输入密码来自动登录服务器,如果成功的话,系统也会将此公钥用于scp、rsync、sftp等,这样scp等程序也不用输入密码可以进行拷贝了。
使用Turbo模式来登录SSH
看了上面的例子觉得怎么样?现在我们再来更进一步的使用SSH
先来建立一个脚本文件,内容很简单就两行:
| #! /bin/sh ssh `basename $0` $* |
将它存到/bin下,文件名为s-sshto
现在转到/bin下,我们来做连接
ls –s s-sshto servername
将你要登录的服务器名换成servername就行了。
现在你只要输入servername就可以登录到你指定的服务上去了,而不用输入ssh,如果你已经半公钥复制到了服务器上了哪么连密码也不用输入了。
不要急着去试,我们的例子还没有完,注意到刚才存的如个脚本的最后两个字符$*了吗?它的作用是让你在单独的一行中运行多个命令而不用打开多个shell例如:
servername df
它可以显示服务器所有的分区使用情况。你也可以将df换成其它命令。
现在,通过这个简单的脚本我们可以更快速的完成我们要完成的任务。
使用SSH登录X
SSH不但支持登录X而且可以很好的转发X的流量
在要使用的ssh服务器上,编辑/etc/ssh/sshd_config文件:
找到
X11Forwarding no
改成:
X11Forwarding yes
然后重新启动sshd
/etc/init.d/ssh restart
现在,输入下面命令:
ssh –X catlin
gkrellm &
如果本机上运行了X就会在桌面上显示出gkrellm 程序,不过gkrellm 实现上是在当前登录的机上运行的,所有的X流量都会经过加密差通过所登录的ssh连接发送,并在本地主机上显示。
如果你不想输入-X的话哪么在你的目录家下的.ssh/config文件中修改:
ForwardX11 no
为
ForwardX11 yes
记不记得上面讲的使用Trubo模式,在这里也可能使用这模式,这样可以快速的完成远程X的作业了。
使用SSH转发穿越防火墙
有很多的网络使用非常严格的防火墙规则,不但过滤进入的连接,而且还过滤出去的连接,甚至你只能使用22号端口来工作,而其它的服务如:WEB、FTP、Mail等使用了其它端口的服务你都不能使用。这时你就可以使用ssh来穿越防火墙。
Ssh 8080:代理服务器的IP:80
现在你已经建立了一个穿越防火墙的连接,它将本地主机的8080端口转发到了代理服务器上是80号端口,这样你就成功的穿越了防火墙
你也可以下面的命令来转发多个端口
ssh -f [username@remote host] -L [local port]:[full name of remote host]:[remote port] [some command]
你不仅可以转发多个端口而且可以在“~/.ssh/config”文件中用“LocalForward”设置经常使用的一些转发端口。
