SSH远程操作与端口转发.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SSH远程操作与端口转发

作者:?阮一峰 日期:?2011年12月23日 接着前一次的文章,继续介绍SSH的用法。 ======================================= SSH原理与运用(二):远程操作与端口转发 作者:阮一峰 (Image credit:?Tony Narlock) 七、远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作。 上一节的操作,就是一个例子:   $ ssh user@host mkdir -p .ssh cat .ssh/authorized_keys ~/.ssh/id_rsa.pub 单引号中间的部分,表示在远程主机上执行的操作;后面的输入重定向,表示数据通过SSH传向远程主机。 这就是说,SSH可以在用户和远程主机之间,建立命令和数据的传输通道,因此很多事情都可以通过SSH来完成。 下面看几个例子。 【例1】 将$HOME/src/目录下面的所有文件,复制到远程主机的$HOME/src/目录。   $ cd tar czv src | ssh user@host tar xz 【例2】 将远程主机$HOME/src/目录下面的所有文件,复制到用户的当前目录。   $ ssh user@host tar cz src | tar xzv 【例3】 查看远程主机是否运行进程httpd。   $ ssh user@host ps ax | grep [h]ttpd 八、绑定本地端口 既然SSH可以传送数据,那么我们可以让那些不加密的网络连接,全部改走SSH连接,从而提高安全性。 假定我们要让8080端口的数据,都通过SSH传向远程主机,命令就这样写:   $ ssh -D 8080 user@host SSH会建立一个socket,去监听本地的8080端口。一旦有数据传向那个端口,就自动把它转移到SSH连接上面,发往远程主机。可以想象,如果8080端口原来是一个不加密端口,现在将变成一个加密端口。 九、本地端口转发 有时,绑定本地端口还不够,还必须指定数据传送的目标主机,从而形成点对点的端口转发。为了区别后文的远程端口转发,我们把这种情况称为本地端口转发(Local forwarding)。 假定host1是本地主机,host2是远程主机。由于种种原因,这两台主机之间无法连通。但是,另外还有一台host3,可以同时连通前面两台主机。因此,很自然的想法就是,通过host3,将host1连上host2。 我们在host1执行下面的命令:   $ ssh -L 2121:host2:21 host3 命令中的L参数一共接受三个值,分别是本地端口:目标主机:目标主机端口,它们之间用冒号分隔。这条命令的意思,就是指定SSH绑定本地端口2121,然后指定host3将所有的数据,转发到目标主机host2的21端口(假定host2运行FTP,默认端口为21)。 这样一来,我们只要连接host1的2121端口,就等于连上了host2的21端口。   $ ftp localhost:2121 本地端口转发使得host1和host3之间仿佛形成一个数据传输的秘密隧道,因此又被称为SSH隧道。 十、远程端口转发 既然本地端口转发是指绑定本地端口的转发,那么远程端口转发(remote forwarding)当然是指绑定远程端口的转发。 还是接着看上面那个例子,host1与host2之间无法连通,必须借助host3转发。但是,特殊情况出现了,host3是一台内网机器,它可以连接外网的host1,但是反过来就不行,外网的host1连不上内网的host3。这时,本地端口转发就不能用了,怎么办? 解决办法是,既然host3可以连host1,那么就从host3上建立与host1的SSH连接,然后在host1上使用这条连接就可以了。 我们在host3执行下面的命令:   $ ssh -R 2121:host2:21 host1 R参数也是接受三个值,分别是远程主机端口:目标主机:目标主机端口。这条命令的意思,就是让host1监听它自己的2121端口,然后将所有数据经由host3,转发到host2的21端口。由于对于host3来说,host1是远程主机,所以这种情况就被称为远程端口绑定。 绑定之后,我们在host1就可以连接host2了:   $ ftp localhost:2121 这里必须指出,远程端口转发的前提条件是,host1和host3两台主机都有sshD和ssh客户端。 十一、SSH的其他参数 SSH还有一些别的参数,也值得介绍。 N参数,表示只连接远程主机,不打开远程shell;T参数,表示不为这个连接分配TTY。这个两个参数可以放在一起用,代表这个SSH连接只用来传数据,不执行远程操作。

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档