如何在没有sudo密码的情况下运行ssh登录?

时间:2019-04-23 22:27:37

标签: ubuntu

我敢肯定这是微不足道的,但是我的谷歌搜索工作主要是导致我尝试使用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密码专门用于(或尽可能具体地)以上操作?

1 个答案:

答案 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