SSH安全协议

概念:

SSH 为 Secure Shell 的缩写,是一种网络安全协议, 专为远程登录会话和其他网络服务提供安全性的协议。通过使用 SSH,可以把传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。

它是一种非对称加密,有一个公钥(加密),私钥(解密),它是单向的,即只能用公钥加密,私钥解密,反着则不行。

从客户端来看,有两种验证方式:基于密码、基于**。

基于密码登录:

SSH安全协议

说明:
(1) 当客户端发起 ssh 请求,服务器会把自己的公钥发送给用户;
(2) 用户会根据服务器发来的公钥对密码进行加密;
(3) 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,
则用户登录成功。

基于密码登录练习:

先分享一下方便Linux操作的一个小工具(SecureCRT)。支持SSH协议,是Windows下登录UNIX或Linux服务器主机的软件。

链接:https://pan.baidu.com/s/1M3m6WLPbrWwqP7LI57hnAw
提取码:e7g6

  1. 先打开node-1虚拟机,查看当前的IP地址。

    SSH安全协议

  2. 打开SecureCRT软件(SecureCRTPortable) ,选择快速连接。然后输入对应的IP地址和用户名。

    SSH安全协议

  3. 这里选接受并保存,下面那个就是公钥。

    SSH安全协议

  4. 然后可能SecureCRT没有下一步动作了,但是连接图标却是红的。这是我们右键点击当前窗口的选项卡,然后点击重新连接,输入密码,重新连接。

    SSH安全协议

  5. 然后我们可以查看到我们已经连接上了node-1了。

    SSH安全协议

基于**登录:

SSH安全协议

说明:
(1) 首先在客户端生成一对**(公钥、私钥);
(2) 客户端将生成的公钥拷贝到需要访问的服务端机器上;
(3) 当客户端再次发送一个连接请求,包括 ip、用户名;
(4) 服务端得到客户端的请求后,会到 authorized_keys 中查找,如果有相 应的 IP 和用户,就会随机生成一个字符串,例如:qwer;
(5) 服务端将使用客户端拷贝过来的公钥对随机字符串 qwer 进行加密,然后 发送给客户端;
(6) 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后 的字符串发送给服务端;
(7) 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果 一致,就允许免密码登录。

OpenSSH

OpenSSH 是 SSH 协议的免费开源实现。
OpenSSH 由客户端和服务端的软件组成。服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是 sshd 进程,提供了对远程连接的处理。
客户端包含 ssh 程序以及像 scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
默认情况下,CentOS 系统会自带安装 OpenSSH 服务。

基于**登录练习:

  1. 先把node-2虚拟机也打开。按照基于密码登录的方式使用SecureCRT连接上。

    SSH安全协议

  2. 现在假设node-1为客户端,node-2为服务端,现需要将客户端远程登录到服务端。

  3. 在没有免密登录的情况下,要登录到node-2 上:(为了好识别,改一下名字)

    1. 输入命令:ssh [email protected],因为之前没有连接过,然后会提示你是否继续连接,输入yes,然后输入密码登录到node-2上。

      SSH安全协议

    2. 使用exit退出后,我们再一次尝试连接node-2,发现仍然要输入密码。

      SSH安全协议

  4. 使用**

    1. 先生成**,输入命令:ssh-****** -t rsa,然后按四下回车,这样就会生成一对公钥和私钥。

      SSH安全协议

    2. 我们可以使用命令ll -a ,去查看当前路径的文件,可以看到有一个 .ssh 的文件夹,使用 cd .ssh 进入这个文件夹

      SSH安全协议

    3. 将公钥拷贝到node-2上面,并且重命名为:authorized_keys ,当前这个ssh协议有命令可以直接去帮我们做这件事。

      使用命令:ssh-copy-id 192.168.111.128

      完成后我们需要输入node-2 的密码,输入正确后我们使用ll 命令就可以看到一个 叫 authorized_keys 的文件。

    4. 现在就是用node-1连接上node-2,使用命令:ssh [email protected]

      SSH安全协议

相关文章: