SSH 前端也需要了解的网络知识

154 阅读1分钟

简介

SSH(Secure Shell的缩写)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境,SSH最常见的用途是远程登录系统

客户端

Windows下支持ssh连接常用的客户端,包括Putty、SecureCRT、MobaXterm、Xshell、VSCODE(Remote SSH插件)等,一般需要填写目标主机IP地址端口(默认22)、用户名密码

MobaXterm远程连接使用示例:

image.png

如果不想每次输入密码,也就是所谓的免密登录,其实就是把你本地的ssh公钥上传到服务端即可。

  • ssh-keygen用于生成公钥和私钥
  • ssh-copy-id用于拷贝公钥追加到远程主机的.ssh/authorized_keys文件(当然也可以复制粘贴来完成)。

image.png

Linux下连接命令为ssh,基本格式为ssh user@remoteip -p port,使用示例如下:

image.png

另外可以使用scp命令进行文件拷贝,基本格式为 scp -P port src dst,注意是大写的P指定端口。

image.png

服务端

服务进程为sshd,嵌入式环境可能为dropbear,配置文件路径为/etc/ssh,常规配置参数在配置文件ssh_config(如监听端口Port 22)。 image.png

抓包分析

tcpdump -i ens192 port 22 and host 192.168.11.89 -envvv -w ssh.pcap

  1. 版本号协商阶段
  2. 密钥和算法协商阶段
  3. 认证阶段
  4. 会话请求阶段
  5. 交互会话阶段 image.png