SSH远程执行命令

这篇文章中记录下如何使用 SSH 来远程执行命令。

1. 背景

传统的 SSH(Secure SHell)的使用方法一般是:首先利用 SSH 登录到远程主机,然后在远程主机上执行相关命令。

但是有时候我们可能有这种需求:我只是想看下远程主机上的某个文件是否存在,或者查看远程主机的某种工作状态,我们只是想看下这种信息,并不想先登录然后执行命令完再退出这种繁琐的操作。SSH 是支持在本地直接将命令提交给远程主机来执行的,执行完命令后返回用户本地的控制台,而不需要手动退出远程的登录。

2. 使用方法

简单使用

可以直接在 SSH 登录的命令后加上想要执行的命令,即可让该命令在远程主机上执行,执行完之后立刻返回本地的命令行:

1
ssh <user_name>@<host_name> '<your command>'

例如,我想看远程主机上面 HOME 目录有什么文件,那么可以:

1
2
# 注意,如果命令需要带参数,那么整个命令串一定要用单引号括起来
ssh user@202.38.79.55 'ls ~'

-t 参数

有时候我们执行的命令需要和用户进行一定的交互,例如使用 sudo 的命令一定需要用户输入密码,这种情况如果仍然像上面那样来提交命令会出错,我们需要加入 -t 参数:

1
ssh -t user@202.38.79.55 'sudo apt update'
1
ssh -t user@202.38.79.55 'htop'

只有带上了 -t 参数,这种交互式的命令才会执行成功。

3. References

Donate comment here