我敢肯定这是微不足道的,但是我的谷歌搜索工作主要是导致我尝试使用ssh而不使用密码进行连接的人们。
我想做的是将ssh连接命令设置为不需要我的sudo密码即可运行命令,我已经设置了公钥,因此可以正常连接。
我可以做到,因此不需要通过使用visudo添加它
<username> ALL=(ALL:ALL) NOPASSWD:ALL
但是我不想让所有命令在没有我的sudo密码的情况下运行,仅允许与我的远程服务器的连接,例如
sudo ssh -i /home/foo/.ssh/id_rsa bar@123.123.123.123 -p12345
如何修改我的sudoers文件,以不要求我的sudo密码专门用于(或尽可能具体地)以上操作?
答案 0 :(得分:0)
使用以下命令将SSH公钥复制到您的服务器(/home/bar/.ssh/authorized_keys)
ssh-copy-id -i /home/foo/.ssh/id_rsa.pub bar@123.123.123.123
登录服务器并在sudoers.d中创建一个文件。
sudo visudo -f /etc/sudoers.d/<username>
具有以下内容。
<username> ALL=(ALL:ALL) ALL
对于旧的Linux发行版,请将该行添加到visudo(/ etc / sudoers)
<username> ALL=(ALL:ALL) ALL
禁用密码身份验证并拒绝root登录。
vim /etc/ssh/sshd_config
PermitRootLogin no
ChallengeResponseAuthentication no
PasswordAuthentication no
重新启动SSH服务
systemctl restart sshd.service