6.2 ssh

6.2 ssh #

6.2.1 ssh 和 telnet #

SSH(Secure Shell)和 Telnet 是两种用于远程登录和管理计算机系统的网络协议,它们在功能和安全性方面存在一些重要的区别。

Telnet 是一种最早的远程登录协议,它使用明文传输数据,包括用户名和密码等敏感信息。由于数据不加密,Telnet 协议在传输过程中容易受到网络嗅探和中间人攻击的风险。因此,Telnet 在现代网络环境中很少使用,主要用于一些特殊的应用场景或旧版系统的维护。

SSH 是一种安全的远程登录协议,它通过加密传输数据,提供了更高的安全性。SSH 使用公钥加密和对称密钥加密的组合,可以保护登录过程中传输的用户名、密码和其他敏感数据。由于 SSH 使用加密技术,网络嗅探和中间人攻击对SSH连接的影响较小。

相比之下,Telne t的主要优点是简单易用,而 SSH 则提供了更高的安全性和功能。SSH 不仅可以进行远程登录,还可以在远程计算机上执行命令、传输文件和建立安全的远程连接。SSH 广泛应用于服务器管理、远程维护和安全通信等领域。

总结来说,Telnet 是一种不安全的远程登录协议,而 SSH 是一种安全的替代方案。在现代网络环境中,建议使用 SSH 来进行远程登录和管理计算机系统,以保护数据的安全性。

6.2.2 telnet 使用 #

# 安装客户端
yum install telnet -y

# 安装服务端
yum install telnet-server xinetd -y

# 启动 telnet 服务
systemctl start xinetd.service
systemctl start telnet.socket

# 登录 telnet
# telnet ip
telnet 192.168.14.12

在用 telnet 登录尽量使用非 root 用户,因为 telnet 传输是明文的,在有些情况下 root 用户登录是被限制的。

如果连接的端口不通要打开防火墙:

iptables -I INPUT -p tcp --dport 23 -j ACCEPT

可以使用 tcpdump 抓包证明 telnet 传输是明文的:

# any 任意网卡, 23 端口, 抓取 1500 字节, 把抓取结果保存到 a.dump 文件
tcpdump -i any port 23 -s 1500 -w /root/a.dump

当登录成功后,可以使用 ctrl+C 让 tcpdump 停止。可以使用 wireshark 图形界面查看抓到的 tcpdump 包:

# 安装 wireshark
yum install wireshark-gnome -y

安装成功后可以在 VMware 的 internet 中看到 wireshark:

打开 wireshark 后通过 File -> Open 打开 tcpdump 的文件:

打卡 tcpdump 的文件后可以在 Protocol 看到 TELNET,info 显示 Telnet Data,鼠标右键 Follow TCP Stream:

可以看到刚登录 telnet 的用户和密码都是明文可见的,给远程连接带来危害:

ssh 使用 #

ssh 服务端的配置文件是 /etc/ssh/sshd_config,客户端配置文件是 /etc/ssh/ssh_config。

常用控制 ssh 服务端命令:

systemctl status | start | stop | restart | enable | disable sshd.service

# ssh [-p端口]  用户@远程ip

密钥认证 #

常用命令

# 客户端生成密钥
ssh-keygen -t rsa

# 拷贝公钥到服务端
#ssh-copy-id -i 公钥路径
ssh-copy-id -i /root/.ssh/id_rsa.pub