Linux安全运维进阶:SSH 无缝切换远程加密

安全 数据安全 服务器运维
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

一、了解SSH

1.随便说说

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

[[245657]]

2.过关

从客户端来看,SSH提供两种级别的安全验证。

第一种级别(基于口令的安全验证)

只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的×××。

第二种级别(基于密匙的安全验证)

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。

第二种级别不仅加密所有传送的数据,而且“中间人”这种×××方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒

3.层次

SSH 主要由三部分组成:

传输层协议 [SSH-TRANS]

提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

用户认证协议 [SSH-USERAUTH]

用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

连接协议 [SSH-CONNECT]

将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

二、事前准备

1.简单说一句

ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。

2.常用语法:

ssh(选项)(参数)

  • -1:强制使用ssh协议版本1;
  • -2:强制使用ssh协议版本2;
  • -4:强制使用IPv4地址;
  • -6:强制使用IPv6地址;
  • -A:开启认证代理连接转发功能;
  • -a:关闭认证代理连接转发功能;
  • -b:使用本机指定地址作为对应连接的源ip地址;
  • -C:请求压缩所有数据;
  • -F:指定ssh指令的配置文件;
  • -f:后台执行ssh指令;
  • -g:允许远程主机连接主机的转发端口;
  • -i:指定身份文件;
  • -l:指定连接远程服务器登录用户名;
  • -N:不执行远程指令;
  • -o:指定配置选项;
  • -p:指定远程服务器上的端口;
  • -q:静默模式;
  • -X:开启X11转发功能;
  • -x:关闭X11转发功能;
  • -y:开启信任X11转发功能。

3.官方语法

  1. usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] 
  2. [-D [bind_address:]port] [-E log_file] [-e escape_char] 
  3. [-F configfile] [-I pkcs11] [-i identity_file] 
  4. [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] 
  5. [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] 
  6. [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] 
  7. [user@]hostname [command] 

三、一顿操作(快速连接)

1.下载安装XSHELL

Google一下

 

2.新建连接会话

3.设置用户身份验证(默认选择Password)

4.连接服务器

四、无缝连接

1.确认两台服务器信息

2.设置hosts配置域名映射

3.生成密钥

 

4.拷贝密钥到另一台主机

5.查看服务器的密钥

6.无密码加密连接

五、回顾

1.解析.ssh目录下的奥秘

  1. [root@web1 .ssh]# tree -l.   
  2.    
  3. ├── authorized_keys #web1主机上的认证文件:记录登录密钥├── id_rsa #web1主机的私钥├── id_rsa.pub #web1主机的公钥└── known_hosts #记录登录到web1的服务key:校验作用0 directories, 4 files   
  4.    
  5. [root@web1 .ssh]#   

2.操作解密

步骤如下:web1服务器生成密钥--》复制web1的公钥到web2--》输入web2服务器密码--》web1公钥加入到web2的认证文件--》web1无密码连接web2--》生成web1的校验密钥到known_hosts--》web2服务器校验known_hosts与 authorized_keys文件是否匹配--》匹配就允许登录,反之拒绝--》web2无密码连接web1,同理。

责任编辑:武晓燕 来源: Python运维圈
相关推荐

2022-05-16 07:35:21

Windows远程桌面远程服务器

2018-11-12 10:10:09

Linux远程数据工具

2012-02-15 14:49:45

2014-09-17 11:16:42

2014-09-17 10:34:47

2020-12-08 12:50:17

向日葵远程运维

2013-08-29 09:19:08

2013-01-30 17:19:48

2019-03-19 08:41:38

Linux运维变更

2018-08-29 09:23:30

2017-09-25 18:32:11

人肉智能运维服务监控

2013-10-21 18:30:19

2012-05-05 21:28:44

2013-08-19 09:02:30

2019-03-27 14:46:51

运维Linux服务器

2016-06-22 15:54:01

2009-08-03 10:00:24

北塔BTIM

2023-10-28 16:06:55

2011-04-27 12:41:29

2018-09-26 05:33:49

点赞
收藏

51CTO技术栈公众号