SSH,不仅仅是安全的外壳

SSH(安全壳) 是一种协议,可以像Telnet一样帮助我们安全地访问远程计算机,但是使用加密算法可以帮助我们保持连接的安全性,尤其是当我们要访问在组织内执行某些重要功能的计算机时。

通常,要进行访问,我们必须提供我们的用户名和计算机地址,以便SSH服务器要求我们提供访问密码:

ssh usuario@equiporemoto

从客户端启动远程计算机与我们之间的第一个连接的那一刻起,信息已经在安全地传输,从而阻止某人获取我们对所述计算机的访问凭据,但是SSH是一种非常适用的协议,为我们提供了许多可能性。

SCP

第一个是能够使用大多数SSH服务器实现的SCP(Secure CoPy)来在客户端和远程计算机之间传输文件,而无需安装FTP或NFS服务器:

scp archivo.tar.gz usuario@equiporemoto:/home/usuario
scp usuario@equiporemoto:/var/log/messages messages.txt

SSH隧道

此功能非常有用,因为它允许我们在客户端和远程计算机之间发送和接收不一定是Shell命令的信息,例如普通浏览。 如果您不知道这有什么用,请考虑以下事项:您需要访问一个页面,但是您所处的位置已实现了防火墙,该防火墙恰好阻止了该页面,因此,我们可以对远程站点进行“隧道化”没有上述阻止并通过我们的SSH会话浏览该页面的计算机:

ssh -D 8888 usuario@equiporemoto

连接后,我们的SSH客户端会在端口8888上“侦听”作为代理服务器,以便我们可以配置浏览器,并且所有流量都通过SSH会话进行传输

SSH隧道

我遇到的另一个例子是,由于某些地理限制,当我们无法从所在位置访问Web服务时,在建立隧道时,该Web服务将远程服务器的IP检测为源IP,而不是客户端IP。 这在某种程度上等效于VPN(虚拟专用网)

反向SSH

如果由于某种原因我们需要访问位于防火墙后面的计算机,并且该计算机不允许我们将SSH流量重定向到该计算机,则可以执行“反向SSH”,以使该计算机连接到另一台SSH服务器,我们还可以在此连接,以访问防火墙后面的设备。 想到的一个例子是,当我们想帮助一个不知道如何在其调制解调器上配置重定向的朋友,但是我们需要远程访问他的计算机时:

朋友->调制解调器-> SSH服务器<-关于我们

遵循的步骤相对非常简单:

朋友
ssh -R 9999:localhost:22 usuario@servidorssh

我们
ssh usuario@servidorssh
进入SSH服务器后,我们可以使用以下方式与朋友的团队建立联系
ssh amigo@localhost -p 9999

如您所见,所有魔术都在于-R参数,该参数告诉中间服务器在我们的朋友的计算机上的9999端口上,我们的计算机正在作为服务器进行侦听。

这些只是SSH提供给我们的一些可能性,但是我邀请您尝试更多的可能性,例如: 我们可以使用RSA密钥执行无人看管的脚本,将X会话(图形模式)重定向到我们的图形环境,仅举几例。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   天文

    优秀的文章,我渴望回家并开始练习它们。

    1.    ADR14n

      非常感谢! 这实际上是我的第一篇博客文章,阅读这些评论真是太好了。 干杯!

  2.   巴勃罗·卡多佐(Pablo Cardozo)

    就在昨天,我在问有关这个话题的事情,以下是。

    有没有办法可以在不考虑文件日期的情况下覆盖整个文件夹? 换句话说,我有一个文件夹,其中包含许多我之前下载的文件,我只想下载从特定日期上传到该文件夹​​的文件。

    致以问候,并在此先感谢。

    1.    拉夫

      您可以通过SSH使用RSYNC来实现。 😉

      1.    吉卡德

        rsync是罐子的盖子! 😀

      2.    爱德华多

        我建议您尝试统一,它是壮观的,它在存储库中可用(至少是debian和ubuntu)

        http://www.cis.upenn.edu/~bcpierce/unison/

        除了在不同计算机上同步目录外,我还使用它每天将笔记备份到另一台计算机上。

        这是非常容易使用

        希望对您有用!

        成功案例
        爱德华多

    2.    左撇子

      这似乎更像是rsync的任务,但是我不知道是否有一个参数专门用于执行此操作,如果没有,也许必须从脚本中处理它。

    3.    ADR14n

      我能想到的是使ls按日期排序,然后通过简单的scp复制所需的ls,因为scp的功能不如他们所说,它具有rsync。

  3.   匿名

    我证明了反向ssh是豪华的,我在我的PC和距离超过700公里且零故障的另一台计算机之间使用了它。
    感谢您提供这些文章,它们非常有价值。

  4.   停止

    太咸了! 哈哈,我不知道ssh有这么多种可能性,我已经想学习如何设置ssh服务器并开始试验其功能,仅此一件,您能解释一下每个参数的作用吗?

    1.    ADR14n

      根据ssh的说法,-D用于在本地指定“动态应用程序转发器”,正如我在本文中所解释的,它用于在同一SSH会话中通过隧道传递流量。 -R指定将通过“转发”重定向到我们本地计算机的远程端口。 最后,-p指定不使用标准端口时客户端应连接到哪个端口:22

  5.   曼努曼

    触及这个主题的好事,我对ssh密钥有疑问,您可以为不同的服务生成多个密钥吗?我希望他们写了一篇有关管理ssh密钥的文章,我知道在google中可以找到答案。,但希望你们他们会谈论它,

    的问候!

    1.    ADR14n

      通过SSL密钥使用身份验证时,可以将同一台(计算机的)导出到不同的服务,并且以相同的方式导出(如果您的计算机是服务器),则可以合并来自不同计算机的不同密钥。 我不知道我是否回答了你的问题,但我理解。 干杯

  6.   路易斯

    我想我记得,通过ssh可以通过一种方法使我们可以远程运行应用程序,并像在本地应用程序一样在计算机上查看它。

    例如,我们可以运行firefox,我们可以在本地计算机上对其进行查看和控制,但是该过程在远程计算机上运行。

    在资源很少的计算机上特别有用,但不幸的是我无法控制该问题,而且我不知道如何配置计算机以实现此目的。

    有人知道吗?

    1.    团队

      对于类似的事情,使用VNC会很方便,您可以使用SSH进行隧道传输。

      1.    x11泰特11x

        @Staff对我来说,如果我还不错,请带上整个桌面..将VNC与VNC一起使用将不方便。

        @Luis,您只需在ssh中添加“ -X”参数即可完成操作(您必须允许服务器上的X转发)

        http://i.imgur.com/NCpfzBL.jpg

      2.    团队

        @ x11tete11x
        考虑到路易斯提到的内容,我想为他提供另一种选择,因为:

        1.“在资源很少的计算机上特别有用...”

        -对于单个应用程序,它可能不会消耗太多资源,但是尝试通过x转发打开10个窗口将继续使系统比拥有单个VNC实例更有效,因为VNC不会“带来整个桌面”
        -在客户端上关闭程序时,它在服务器上的运行结果相同(如果我错了,请纠正我),而使用VNC,例如,您可以整夜下载torrent,然后在早上再次登录,一切将继续就像我离开时一样
        -VNC是与系统无关的协议,您可以从Win,Andorid,Mac OSX等客户端中访问它。 并使用您的GNU / Linux程序,而无需安装VNC客户端本身以外的任何东西。

        2. XNUMX.不幸的是,我无法控制问题,而且我不知道如何配置计算机以实现此目的。

        与移动X配置文件相比,安装VNC和配置SSH隧道(通过GUI进行操作)要容易得多(并且不必冒着键入错误的错误并在没有桌面的情况下重新启动的风险)。

      3.    路易斯

        谢谢你们的评论。

        很长时间以来,我一直在使用SSH和SHFS来访问我的小型服务器上的远程内容,但是我从来没有能够在图形环境中运行远程应用程序。

        我将尝试这两种选择,以了解其工作原理。 一开始我说的似乎更简单,因为根据x11tete11x,您只需添加一个参数。

        然后,我将看一下是否可以找到一种简单的配置VNC的方法,因为我有点帮助,我是Arch用户,因此肯定会在Wiki上提供信息,还有另一件事需要我了解。 呵呵呵

        问候。

    2.    ADR14n

      可以通过将-X参数传递给会话来完成,但是您必须将X服务器配置为接受来自网络上计算机的连接,我认为这是使用xhost实用程序配置的。 正如员工所说,VNC也是一个很好的选择

    3.    马里奥

      这是X11转发,在同一站点上,有一篇有关此的文章:
      https://blog.desdelinux.net/x11-forwarding-a-traves-de-ssh/

    4.    路易斯

      感谢您的信息朋友。

      我说过,我将同时使用这两个选项来查看哪个更适合我。

      的问候!