SSH协议
SSH:Secure Shell 安全外壳协议,是一种网络协议,用于在不安全的网络上提供安全的通信。SSH通过在客户端和服务器之间建立安全通道,确保数据的机密性和完整性,广泛应用于远程登录和文件传输。
SSH登录认证
SSH提供两种认证方式:口令(密码)认证方式和密钥认证方式。
使用密钥登录分3步:
- 生成密钥(公钥与私钥);
- 放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中;
- 配置ssh客户端使用密钥登录。
生成SSH密钥
ssh有专门创建SSH密钥的工具ssh-keygen
ssh-keygen -t rsa -C "标记备注"
生成私钥和公钥文件:
id_rsa:私钥(需严格保密,权限应设为600)id_rsa.pub:公钥(可分享给远程服务器)
通过ssh代理功能连接到内网linux服务器
需要通过一台公网主机代理
- 建立内服到云的反向代理
- 建立云服上的正向代理
- 在个人机器上通过云服ssh到内服
下面三行命令分别在内网服务器、云服务器、和个人电脑上执行。
ssh -fCNR 8081:localhost:22 云用户@云IP
ssh -fCNL "*:8082:localhost:8081" localhost
ssh -p 8082 内服用户@云IP
8081是云服上端口,用来与内服上的22端口绑定。
8082为云服上转发端口,将数据转发到8081端口。
星符号*表示接受来自任意机器的访问。
https://segmentfault.com/a/1190000002718360
SSH 参数解释
- -f 后台运行
- -C 允许压缩数据
- -N 不执行任何命令
- -R 将端口绑定到远程服务器,反向代理
- -L 将端口绑定到本地客户端,正向代理.
SSH传输认证
将代码推送至代码托管仓库或者从代码托管仓库下拉代码时,代码托管仓库需要验证客户端身份与权限,SSH是对代码托管服务进行远程访问的身份验证方式。
-
SSH密钥是一种加密的网络传输协议,通过此密钥,可以在电脑与代码托管服务之间建立安全连接。
-
在一台电脑上配置了SSH密钥,并将公钥添加到代码托管服务中后,所有该账号下的代码仓库与此电脑之间都可以使用该密钥进行连接。
-
当不再需要电脑连接托管服务时,在托管服务中把公钥配置删除即可。
本文详细介绍了SSH的密钥认证过程,包括生成密钥对、将公钥放入服务器授权文件以及配置客户端使用密钥登录。此外,还阐述了如何通过公网主机建立SSH代理,实现对内网Linux服务器的连接,详细解析了相关SSH命令参数的含义,如-f、-C、-N、-R和-L。通过这种方法,可以安全地进行远程访问并绕过内网限制。

303

被折叠的 条评论
为什么被折叠?



