简介
SSH(Secure Shell的缩写)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境,SSH最常见的用途是远程登录系统。
客户端
Windows下支持ssh连接常用的客户端,包括Putty、SecureCRT、MobaXterm、Xshell、VSCODE(Remote SSH插件)等,一般需要填写目标主机IP地址、端口(默认22)、用户名、密码。
MobaXterm远程连接使用示例:
如果不想每次输入密码,也就是所谓的免密登录,其实就是把你本地的ssh公钥上传到服务端即可。
- ssh-keygen用于生成公钥和私钥
- ssh-copy-id用于拷贝公钥追加到远程主机的.ssh/authorized_keys文件(当然也可以复制粘贴来完成)。
Linux下连接命令为ssh,基本格式为ssh user@remoteip -p port,使用示例如下:
另外可以使用scp命令进行文件拷贝,基本格式为 scp -P port src dst,注意是大写的P指定端口。
服务端
服务进程为sshd,嵌入式环境可能为dropbear,配置文件路径为/etc/ssh,常规配置参数在配置文件ssh_config(如监听端口Port 22)。
抓包分析
tcpdump -i ens192 port 22 and host 192.168.11.89 -envvv -w ssh.pcap
- 版本号协商阶段
- 密钥和算法协商阶段
- 认证阶段
- 会话请求阶段
- 交互会话阶段