rmdir.cn

ssh 远程执行命令

在远程主机执行一条命令后返回

语法

ssh [用户名@]主机 '命令'

说明

适用于自动化巡检或快速查看远程状态。命令作为 ssh 的参数传入,不会启动交互式 shell,因此别名、函数和交互式提示符都不可用。是否会被本地 shell 展开取决于引号用法:单引号表示原样传给远端,双引号则由本地先展开。命令的退出码会成为 ssh 的退出码,可用于脚本判断。

参数

  • -t

    强制分配伪终端,适合需要 sudo 或交互的命令

  • 命令必填

    在远端执行的命令字符串

示例

查看远程磁盘占用

非交互方式快速获取信息。

ssh deploy@example.com 'df -h && uptime'

注意事项:单引号可避免本地 shell 展开 $ 变量与通配符,涉及远端变量时优先使用单引号。

需要交互的执行

为 sudo 等需要终端环境的命令分配伪终端。

ssh -t deploy@example.com 'sudo systemctl restart my-app'

注意事项:缺少 -t 时 sudo 常报 'no tty present'。远程执行重启类命令前应确认影响范围。

参考资料