admin 发表于 2025-6-19 11:57:03

SSH协议

SSH(Secure Shell)是一种为远程登录会话和其他网络服务提供安全性的协议。它主要用于在不安全的网络上安全地访问远程服务器和设备。SSH 使用加密技术,能够有效防止会话内容被窃听、篡改和劫持
1. SSH的主要用途
远程登录:安全地连接到远程主机,进行命令行操作。
远程文件传输:通过SCP(Secure Copy Protocol)或SFTP(SSH File Transfer Protocol)安全地上传/下载文件。
端口转发/隧道:通过SSH加密通道转发本地或远程端口,实现安全的网络通信。
远程执行命令:无需登录交互式Shell即可在远程主机上运行命令。
VPN替代:可作为轻量级VPN方案,通过隧道访问公司内网资源。
2. SSH的工作原理
SSH采用“客户端-服务器”模式,连接流程大致如下:

客户端发起连接,并与服务器协商加密算法。
服务器发送公钥给客户端。
客户端验证服务器身份(可通过known_hosts文件或CA签名)。
客户端生成会话密钥,用服务器公钥加密发送给服务器,两端协商出会话密钥。
双方使用会话密钥对通信内容进行加密,确保数据的机密性和完整性。
用户身份认证(如密码、密钥、双因子、证书等)。
认证通过后,建立安全通道,用户可以安全操作远程主机。
3. SSH常用的认证方式
密码认证:输入远程服务器账号密码。
公钥认证:利用一对公私钥,服务器保存公钥,客户端持有私钥,登录时无需输入密码。
双因子认证:如Google Authenticator、短信验证码等二次验证。
证书认证:使用CA签发的证书进行身份验证。
4. SSH 典型命令
# 远程登录
ssh user@host

# 指定端口
ssh -p 2222 user@host

# 远程执行命令
ssh user@host "ls /var/www"

# 本地端口转发(如本地1080端口转发到远程3306)
ssh -L 1080:localhost:3306 user@host

# 远程端口转发
ssh -R 8080:localhost:80 user@host

# 使用密钥登录
ssh -i ~/.ssh/id_rsa user@host

# 复制文件到远程
scp file.txt user@host:/path/

# SFTP模式
sftp user@host
5. SSH 配置文件(~/.ssh/config)
可以为不同主机编写配置,方便管理:
Host myserver
    HostName server.example.com
    User myuser
    Port 2222
    IdentityFile ~/.ssh/id_rsa
页: [1]
查看完整版本: SSH协议