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