ssh 连接
通过 SSH 协议安全地连接到远程服务器,支持密码和密钥认证
语法
ssh [options] [user@]hostname [command]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-p --port |
指定远程服务器端口号 | ssh -p 2222 user@host |
常用 |
-i |
指定私钥文件路径 | ssh -i ~/.ssh/id_rsa user@host |
常用 |
-v |
显示详细调试信息 | ssh -v user@host |
进阶 |
-o |
指定配置选项 | ssh -o StrictHostKeyChecking=no user@host |
进阶 |
-q |
静默模式,抑制警告和诊断信息 | ssh -q user@host |
进阶 |
-N |
不执行远程命令(用于端口转发) | ssh -N -L 8080:localhost:80 user@host |
进阶 |
示例
基本连接
ssh user@192.168.1.100
使用默认端口 22 连接
指定端口连接
ssh -p 2222 deploy@production.example.com
服务器 SSH 端口改为 2222 时使用
使用指定密钥连接
ssh -i ~/.ssh/work_key root@10.0.0.1
多密钥场景下指定使用哪个私钥
连接并执行命令
ssh user@host 'ls -la /var/log'
执行完命令后自动断开连接
常见错误
ssh: connect to host xxx port 22: Connection refused
确认远程服务器 SSH 服务已启动:systemctl status sshd,检查防火墙是否放行端口
Permission denied (publickey,password)
检查用户名是否正确,密钥是否已添加到服务器 authorized_keys,或密码是否正确
技巧
- 首次连接会提示确认主机指纹,输入 yes 后会保存到 ~/.ssh/known_hosts
- 使用 -v/-vv/-vvv 逐级增加调试信息量,排查连接问题很有用
- 配合 ~/.ssh/config 可以省去每次输入用户名、端口等参数