ssh可直接远程执行命令,格式为ssh user@host 'command',支持指定端口、多命令分号连接、绝对路径脚本及传参;交互命令需加-t或-tt参数;生产环境应配置公钥认证实现免密登录。

直接用 ssh 加用户名、IP 和命令就能执行,不用先登录再操作。
基础写法:单条命令
格式最简明:
ssh user@host 'command'
-
user 是远程服务器上的用户名(比如
ubuntu或root) -
host 是 IP 地址或域名(如
192.168.1.50或server.example.com) - command 是你要运行的命令,用单引号或双引号括起来(推荐单引号,避免本地 shell 提前解析)
例如:ssh admin@192.168.1.50 'df -h' —— 查磁盘空间ssh deploy@prod-server 'systemctl status nginx' —— 查服务状态
常用扩展:端口、多命令、脚本路径
如果 SSH 端口不是默认的 22,加 -p 参数:ssh -p 2222 user@host 'uptime'
执行多个命令,用分号连接:ssh user@host 'pwd; ls -l /tmp; free -h'
运行远程脚本,必须用绝对路径:ssh user@host '/home/user/scripts/backup.sh'
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
传参给远程脚本也支持:ssh user@host '/opt/app/deploy.sh v2.3'($1 就是 v2.3)
需要交互?加上 -t 参数
像 sudo、top、vim 这类要键盘输入的命令,默认会失败——因为没分配终端(TTY)。加 -t 就行:ssh -t user@host 'sudo apt update'ssh -t user@host 'top -n 1'
如果提示仍卡住,可试 -tt(双重强制),尤其在自动化脚本中更可靠。
安全执行前提:免密登录建议配好
脚本批量执行时,输密码不现实。务必提前配置好公钥认证:
① 本地生成密钥:ssh-keygen -t ed25519
② 推送公钥到目标机:ssh-copy-id user@host
③ 验证:ssh user@host 'echo ok' —— 不输密码就成功
若必须用密码(不推荐),可用 sshpass,但仅限测试环境;生产环境请坚持密钥 + ssh-agent 或密钥链管理。










