Shell
Shell是一种用来与操作系统交互的命令行界面(CLI)。它允许用户通过输入命令来控制计算机并执行各种操作。
在Linux和Unix系统中,常用的Shell有bash、csh、ksh等。在Windows系统中,常用的Shell有cmd和PowerShell。
早期的互联网,直接通过Shell通信都是明文通信,一旦被截获,内容就会泄露。
#SSH
为了解决这个问题,芬兰人发明一种网络协议,用于计算机之间的加密登陆,这种协议叫SSH(Secure Shell Protocol)。
SSH只是一种协议,有商业实现也有开源实现。Openssh是最为流行的开源实现,是linux上的预装软件,本文讨论的是linux下openssh的暴力破解问题。
SSH之所以能够保证安全,原因在于它采用了公钥加密。整个过程是这样的:
- 远程主机收到用户的登录请求,把自己的公钥发给用户
- 用户使用这个公钥,将登录密码加密后,发送回来
- 远程主机用自己的私钥,解密登录密码,如果密码正确