ssh 命令 #
基本介绍 #
ssh(Secure Shell)命令是一个用于在网络上安全地执行远程命令的程序。它提供了强大的身份验证机制和安全的通信通道,用于登录远程服务器、执行命令和传输文件。
基本语法 #
bash
ssh [选项] [用户]@[主机名或IP地址]
常用选项 #
| 选项 | 描述 |
|---|---|
-p <端口> |
指定远程服务器的SSH端口号(默认22) |
-i <私钥文件> |
指定用于身份验证的私钥文件 |
-X |
启用X11转发功能 |
-Y |
启用受信任的X11转发功能 |
-C |
启用压缩功能 |
-v |
显示详细的调试信息 |
-t |
强制分配伪终端 |
-L <本地端口>:<目标主机>:<目标端口> |
建立本地端口转发 |
-R <远程端口>:<目标主机>:<目标端口> |
建立远程端口转发 |
-D <本地端口> |
建立动态端口转发(SOCKS代理) |
示例 #
1. 基本登录 #
使用默认端口(22)登录远程服务器:
bash
ssh user@192.168.1.100
2. 指定端口登录 #
使用自定义端口登录远程服务器:
bash
ssh -p 2222 user@example.com
3. 使用私钥登录 #
使用SSH密钥对进行身份验证:
bash
ssh -i ~/.ssh/id_rsa user@example.com
4. 执行远程命令 #
在远程服务器上执行单个命令并返回结果:
bash
ssh user@example.com "ls -la"
5. 端口转发 #
本地端口转发 #
将本地端口8080转发到远程服务器的80端口:
bash
ssh -L 8080:localhost:80 user@example.com
远程端口转发 #
将远程服务器的8080端口转发到本地的80端口:
bash
ssh -R 8080:localhost:80 user@example.com
动态端口转发 #
创建一个SOCKS代理(端口1080):
bash
ssh -D 1080 user@example.com
高级用法 #
1. 使用SSH配置文件 #
创建或编辑 ~/.ssh/config 文件可以简化SSH连接:
bash
Host webserver
HostName 192.168.1.100
Port 2222
User admin
IdentityFile ~/.ssh/webserver_key
ForwardX11 yes
然后可以使用简化命令登录:
bash
ssh webserver
2. 密钥生成和管理 #
生成新的SSH密钥对:
bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
将公钥复制到远程服务器:
bash
ssh-copy-id user@example.com
3. 保持连接活跃 #
在 ~/.ssh/config 中添加以下配置以保持长时间连接:
bash
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
注意事项 #
- 确保使用强密码或SSH密钥对进行身份验证
- 定期更新SSH客户端和服务器软件
- 考虑禁用root用户直接登录
- 使用防火墙限制SSH访问的IP地址
- 启用双因素认证(如果支持)
相关命令 #
scp: 安全地复制文件到远程服务器sftp: 安全文件传输协议客户端ssh-keygen: 生成SSH密钥对ssh-copy-id: 将公钥复制到远程服务器ssh-agent: SSH密钥代理
最后更新:2026-02-07