我正在尝试从一台 ubuntu18.04 机器通过 SSH 连接到另一台。为此,在两台机器上创建一个单独的用户,并将该用户添加到 sudo 组中,然后编辑 sshd_config 文件中的 PubKeyAuthentication=yes,然后重新启动 ssh 服务。
然后在第一台机器上创建的用户下,生成 ssh-keygen,将该 id_rsa.pub 密钥复制到第二台机器上创建的用户下,ssh-copy-id -i id_rsa.pub newuser2@[ip-of-2ndmachine]
现在我可以不使用密码通过 ssh 连接到第二台机器,但是当我执行 apt update 时,它显示权限被拒绝,现在如何在不使用密码的情况下执行相同的操作?
注意:如果我提供 sudo apt update,它会询问密码,输入密码后,cmd 就会执行。
有人可以帮助我在第二台机器上执行所有命令,而无需向新用户(非 root)提供密码。
答案1
Apt 命令必须以超级用户权限执行,通常通过使用 sudo。这通常需要您输入密码。您可以在第二台机器上为apt
命令设置无密码 sudo,或者更安全地为特定apt
命令设置无密码 sudo,以实现您的目标。
要设置无密码 sudo,您需要已经拥有 sudo 访问权限visudo
,因为用于编辑 sudoers 文件的命令是另一个需要 root 级别权限的命令。
要使用默认文本编辑器编辑 sudoers 文件:
sudo visudo
添加以下行以允许无密码访问所有apt
命令(将用户替换为您的实际用户名):
user ALL= NOPASSWD: /usr/bin/apt
尽可能限制 sudo 访问会更安全,因此如果您知道可能运行的精确命令,请输入这些命令:
user ALL= NOPASSWD: /usr/bin/apt update
user ALL= NOPASSWD: /usr/bin/apt upgrade
关闭文件并保存更改以启用新的访问级别,您仍然需要使用sudo
您的命令,但不需要输入密码。
请注意,sudo
过于随意地授予无密码访问权限可能会破坏系统的安全性。如果操作不当,则意味着任何可以以您的用户身份登录的人都可以将其权限提升到 root 级别并在您的系统上执行任何操作。