如何通过 ssh -t 远程运行 sudo 命令?

dpe*_*973 6 ssh sudo shell-script

我有一个脚本,它通过登录到远程主机ssh -t并使用sudo service foo restart.

要求是避免在远程主机上提示输入密码。远程主机通过 SSH 证书进行身份验证。在sudoers远程主机上的文件允许用户与执行服务命令NOPASSWD

但是,在我的测试过程中,系统提示我输入密码,这是不可接受的。如果我在没有-t标志的情况下手动运行它,它会起作用。然而,-t国旗把一切都抛在了脑后。

有没有解决的办法?

小智 0

生成 SSH 密钥并将其传输到远程主机。

  1. 使用以下命令生成 RSA SSH 密钥

    [root@localhost ~] ssh-keygen
    
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):  Hit ENTER
    Enter passphrase (empty for no passphrase): Hit ENTER
    Enter same passphrase again: Hit ENTER
    
    Run Code Online (Sandbox Code Playgroud)
  2. /root/.ssh/id_rsa.pub使用以下命令查找该密钥并将其传输到远程:

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@remote:/root
    
    Run Code Online (Sandbox Code Playgroud)

现在尝试登录;它不会询问您的远程密码。