默认端口22,特殊情况下可以是830端口,支持修改,不过会重新监听。
总体流程
连接建立->版本协商->算法协商->密钥交换->用户认证->会话请求->会话交互
详细说明
首先双方建立TCP链接,之后双方决定使用1.X还是2.0版本,然后确定使用的加密算法,之后通过算法生成会话秘钥和id,在认证时一般有以下几种方式
● 密码
● 秘钥
● 密码和密钥
● 密码或秘钥
认证通过后就可以发起请求,请求后就开始信息交互。
秘钥认证的话就是客户端把私钥给服务器验证。私钥是交换密钥的时候生成的。
具体流程如下
- 连接前客户端自己生成公私钥,并发送公钥给ssh服务器
- 登录时服务器在服务器环境中查找对应环境的公钥,加密一个随机数给客户端
- 客户端解密后响应这个数字
这也就是为什么服务器重置后需要重新搞一个公钥的原因,因为本地存储了fingerprint
也就是公钥的hash加密,如果连接同一个服务器的指纹不一样就会出现安全风险,是中间人攻击的对应方式。不过如果是第一次就被劫持,那么后续也会被利用,所以这个更类似于警告。
工具
PuTTY 腾讯云就是推荐使用这个,其他工具也有许多,直接搜索平台+SSH工具就好