行业资讯

立即注册 咨询客服

当前位置:首页 > 行业资讯> 如何使用SSH在远程机器上运行需要sudo权限的命令

如何使用SSH在远程机器上运行需要sudo权限的命令

发布时间:2019年07月14日 11:27:40    来源: A5互联

Secure Shell有很多使用技巧,比如无需登录即可在远程服务器上运行命令。当然,您可也登录到服务器,运行命令,然后退出,只是需要多花点时间。但是为什么不一次性完成所有操作呢?这不仅方便,而且非常简单。

您需要再准备两台Linux机器以供测试,都要有正在运行的openssh-server。如果未安装,则可以从标准存储库执行此操作。例如,在Ubuntu Server平台上,安装SSH守护程序的命令是:

sudo apt-get install openssh-server -y

对于CentOS 7,命令是:

sudo yum install -y openssh-server

安装后,您将需要使用以下命令启用服务器:

sudo systemctl start sshd

sudo systemctl enable sshd

现在您已在远程服务器上运行openssh-server,您可以向它们发送命令。让我们来看看会怎么样。

一、运行基本命令

让我们在远程/ etc目录中获取文件列表。为此,命令是:

ssh USER @ SERVER_IP“ls / etc”

USER是远程用户名,SERVER_IP是远程服务器的IP地址。成功输入远程用户密码后,您将获得远程服务器上/ etc /目录的列表。

十分简单。

二、运行需要sudo的命令

但是,如果您需要在远程服务器上运行需要sudo权限的命令呢?如果你还是按上面的方式运行,你会看到一个tty错误。

怎么解决这个问题?幸运的是,您可以在命令中添加一个switch。switch是-t。-t做什么?它强制执行伪终端分配,因此ssh不知道它没有可用的本地终端。

因此,要通过ssh运行需要sudo权限的远程命令,ssh命令如下所示:

ssh -t USER @ SERVER_IP“sudo COMMAND”

例如,假设您希望用户插孔在192.168.1.201升级远程服务器。这个命令是:

ssh -t jack@192.168.1.201“sudo apt-get upgrade -y”

首先会要求您提供SSH连接的用户密码,然后是第二次请求sudo权限的用户密码。

该命令将就像在本地计算机上执行一样运行(仅在远程机器上运行)。这就是通过SSH在远程机器上运行需要sudo特权的命令的全部内容。