SSH(Secure Shell)是一种网络协议,用于在不安全的网络中提供安全的远程登录和其他网络服务。以下是常用的SSH命令及其说明:
1. 基本连接命令
ssh
- 功能:连接到远程服务器。
- 示例:
ssh user@hostname
user
:远程服务器的用户名。hostname
:远程服务器的IP地址或域名。
- 常用选项:
-p
:指定端口号(默认端口为22)。ssh -p 2222 user@hostname
-i
:指定私钥文件。ssh -i /path/to/private_key user@hostname
2. 密钥管理命令
ssh-keygen
- 功能:生成SSH密钥对(公钥和私钥)。
- 示例:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa
:指定密钥类型(如RSA)。-b 4096
:指定密钥长度(4096位)。-C
:添加注释(如邮箱)。
- 默认保存路径:
~/.ssh/id_rsa
(私钥)和~/.ssh/id_rsa.pub
(公钥)。
ssh-copy-id
- 功能:将本地公钥复制到远程服务器,实现免密码登录。
- 示例:
ssh-copy-id user@hostname
3. 配置管理命令
ssh-agent
- 功能:管理SSH密钥代理,避免频繁输入密码。
- 常用操作:
- 启动代理:
eval "$(ssh-agent -s)"
- 添加密钥:
ssh-add ~/.ssh/id_rsa
- 启动代理:
ssh-config
- 功能:配置SSH客户端行为(如别名、端口、密钥等)。
- 配置文件路径:
~/.ssh/config
- 示例配置:
Host myserver HostName hostname User user Port 2222 IdentityFile ~/.ssh/id_rsa
- 使用别名连接:
ssh myserver
4. 文件传输命令
scp
- 功能:通过SSH安全传输文件。
- 示例:
- 上传文件:
scp /path/to/local_file user@hostname:/path/to/remote_directory
- 下载文件:
scp user@hostname:/path/to/remote_file /path/to/local_directory
- 上传文件:
- 常用选项:
-r
:递归复制目录。-P
:指定端口号。
sftp
- 功能:基于SSH的文件传输协议。
- 示例:
sftp user@hostname
- 常用命令:
put
:上传文件。get
:下载文件。ls
:列出远程文件。cd
:切换远程目录。
- 常用命令:
5. 隧道与转发命令
本地端口转发
- 功能:将本地端口流量转发到远程服务器。
- 示例:
ssh -L 8080:localhost:80 user@hostname
- 访问
localhost:8080
即访问远程服务器的localhost:80
。
- 访问
远程端口转发
- 功能:将远程服务器端口流量转发到本地。
- 示例:
ssh -R 8080:localhost:80 user@hostname
- 远程服务器访问
localhost:8080
即访问本地的localhost:80
。
- 远程服务器访问
动态端口转发(SOCKS代理)
- 功能:创建SOCKS代理。
- 示例:
ssh -D 1080 user@hostname
- 配置浏览器使用
localhost:1080
作为SOCKS代理。
- 配置浏览器使用
6. 其他常用命令
ssh-keyscan
- 功能:收集远程服务器的SSH公钥指纹。
- 示例:
ssh-keyscan hostname >> ~/.ssh/known_hosts
ssh-add
- 功能:添加SSH密钥到代理(见
ssh-agent
)。
ssh-keygen -lf
- 功能:显示SSH公钥指纹。
- 示例:
ssh-keygen -lf ~/.ssh/id_rsa.pub
7. 故障排查命令
ssh -v
- 功能:启用详细模式,调试SSH连接问题。
- 示例:
ssh -v user@hostname
ssh -vvv
- 功能:启用更详细的调试信息。
SSH命令是远程管理和安全通信的核心工具,掌握以下命令可大幅提升效率:
- 连接:ssh
、scp
、sftp
- 密钥管理:ssh-keygen
、ssh-copy-id
、ssh-agent
- 配置:ssh-config
- 高级功能:端口转发(-L
、-R
、-D
)
通过合理配置和使用,SSH可实现安全、高效的远程操作。
(本文来源:nzw6.com)