SSH简介及工作机制

SSH简介及工作机制

最近经常使用SSH登录局域网中其他Ubuntu计算机,使用到了一些原来不常用的强大功能,这里重新回顾一下SSH的工作机制。大家可以看看看,了解下SSH。这个介绍是之前从网上看到保存下来文章中的一部分,忘记了具体来源。


1.SSH简介

传统的网络服务程序,如:ftp、POP和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

从前,一个名为Tatu Yl?nen的芬兰程序员开发了一种网络协议和服务软件,称为SSH(Secure SHell的缩写)。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,虽然许多人把Secure Shell仅当作Telnet的替代物,但你可以使用它来保护你的网络连接的安全。你可以通过本地或远程系统上的Secure Shell转发其他网络通信,如POP、X、PPP和FTP。你还可以转发其他类型的网络通信,包括CVS和任意其他的TCP通信。另外,你可以使用带 TCP包装的Secure Shell,以加强连接的安全性。除此之外,Secure Shell还有一些其他的方便的功能,可用于诸如Oracle之类的应用,也可以将它用于远程备份和像SecurID卡一样的附加认证。

2.SSH的工作机制

SSH分为两部分:客户端部分和服务端部分。

服务端是一个守护进程(demon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。

客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。刚才所讲的只是SSH连接的大致过程,SSH 1.x和SSH 2.x在连接协议上还有着一些差异。

SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。

但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,

SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。


  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SSH Publishers是Jenkins插件之一,用于将构建的文件或目录通过SSH协议发布到远程服务器。在使用SSH Publishers配置工作区外的目录时,确实会遇到一些问题。 首先,SSH Publishers插件默认只能访问和配置Jenkins工作区内的文件和目录。这是因为Jenkins构建过程中生成的文件通常都保存在工作区内,工作区外的目录可能具有不同的访问权限或地址,因此默认情况下不允许通过SSH Publishers访问和配置。 其次,即使想要配置工作区外的目录,也需要一些额外的操作和配置。首先,我们需要确保Jenkins服务器有访问工作区外目录的权限,通常可以通过配置操作系统的用户账户和权限来实现。然后,在SSH Publishers插件的配置中,需要手动指定工作区外目录的路径和其他相关信息,例如服务器地址、用户名、密码等。这些额外的配置步骤需要根据具体的环境和需求来进行,因此并不是SSH Publishers插件的默认功能。 综上所述,虽然SSH Publishers本身并不能直接配置工作区外的目录,但可以通过额外的操作和配置来实现这样的功能。这需要确保Jenkins服务器对工作区外目录具有访问权限,并在SSH Publishers插件配置中手动指定相关信息。通过这种方式,我们可以将构建的文件或目录发布到工作区外的目录中。 ### 回答2: SSH出版物者是一个指定哪些文件可以通过SSH访问的配置选项。它通常用于配置Git仓库,并允许合法用户通过SSH协议来访问这些文件。然而,SSH出版物者不能配置工作区外的目录。 工作区是指存储Git仓库文件并进行版本控制的文件夹。在工作区中,我们可以进行文件的创建、修改和删除,并在提交到Git仓库之前进行必要的更改调整。 当使用SSH出版物者配置Git仓库时,它只能控制Git仓库内部的文件和目录。这是合理的,因为SSH出版物者的目的是确保只有授权用户可以访问和更新Git仓库的文件。 如果想要配置Git仓库之外的目录,我们可以考虑使用其他权限控制机制,例如操作系统级别的访问控制。通过操作系统的*文件权限*或者使用*ACL (Access Control List)*,我们可以精确地控制哪些用户或用户组可以访问工作区外的目录。 总结起来,SSH出版物者对于Git仓库内部的文件和目录的权限控制非常有用,但它无法配置工作区外的目录。对于工作区外的目录,我们可以使用其他权限控制机制来确保安全访问。 ### 回答3: SSH发布者(SSH publishers)是Jenkins CI软件中的一个插件,用于将构建的项目发布到远程服务器。它提供了一种简单和安全的方式来自动化部署应用程序。 在使用SSH发布者时,常见的配置是在工作区内指定需要发布的目录。这是因为在工作区内,Jenkins会检出代码并进行构建,然后将构建结果发布到远程服务器。 SSH发布者无法配置工作区外的目录是因为它的设计初衷是确保安全和可靠的部署。通过限制只能发布工作区内的目录,可以避免操作系统的文件权限问题,并且不会意外地将不相关的文件发布到服务器上。 如果需要在工作区外发布文件,可以通过一些其他的方法来实现。例如,可以在构建过程中将需要发布的文件复制到工作区内,并在使用SSH发布者时指定工作区内的目录。这样可以保证只发布需要的文件,并且不会影响到其他文件。 总而言之,SSH发布者不能配置工作区外的目录是出于安全和可靠性的考虑。通过合理的构建和部署策略,可以实现符合需求的自动化发布。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值