我正在使用 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 登录被认为是不安全的。但是,您可以采取各种步骤来提高允许此类登录的安全性:
- 仅允许使用密码和密钥验证的 root 登录
- 仅允许从某些已知/受信任的 IP 地址进行 root 登录
- 将 root 用户名更改为独特的名称(不太确定这是否容易做到)
这个 ServerFault 问题还有一些 ssh 安全建议。
一个更“安全”的解决方案是创建一个远程系统帐户,该帐户只具有执行您需要执行的操作的权限。这显然需要对您登录的机器进行一些重新配置,而且您不知道这是否适合您。