如何从应用程序以 sudo 身份通过 SSH 进入服务器

如何从应用程序以 sudo 身份通过 SSH 进入服务器

我正在使用 Sequel Pro 连接到远程数据库。通常,当我通过 SSH 登录时,我必须sudo su先运行才能访问数据库。因此,当我将正常的 SSH 凭据输入 Sequel Pro 时,它会返回一个错误,提示我无权访问数据库服务器(就像我尝试从命令行连接时收到的错误一样sudo su)。

那么有没有办法通过 sudo 连接到远程服务器?

答案1

请不要允许 root 通过 SSH 登录!

相反,编辑您的 sudoers 文件以允许您以登录用户身份执行所需的命令 - 这正是 sudo 存在的原因!然后只需在您的远程命令前面加上单词“sudo”即可。

例子/etc/sudoers文件:

myuser ALL=(root) NOPASSWD: /path/to/my/command --my --argument --list

然后你的 SSH 命令:

ssh myuser@remotehost "sudo /path/to/my/command --my --argument --list"

man sudoers并将man ssh提供更多细节。

答案2

或许只是启用 root 身份远程登录,设置 root 密码,然后以“root”身份通过 ssh 进行登录。通常不建议这样做,因为允许 root 通过 ssh 登录被认为是不安全的。但是,您可以采取各种步骤来提高允许此类登录的安全性:

  1. 仅允许使用密码和密钥验证的 root 登录
  2. 仅允许从某些已知/受信任的 IP 地址进行 root 登录
  3. 将 root 用户名更改为独特的名称(不太确定这是否容易做到)

这个 ServerFault 问题还有一些 ssh 安全建议。

一个更“安全”的解决方案是创建一个远程系统帐户,该帐户只具有执行您需要执行的操作的权限。这显然需要对您登录的机器进行一些重新配置,而且您不知道这是否适合您。

相关内容