如何解决通过 Python 脚本拒绝所有用户基于密码的 SSH 登录
我正在编写一个 Python 脚本来拒绝远程服务器 (Ubuntu 18.04) 的基于密码的 SSH 登录。我将在我的主机系统 (Windows) 中运行 Python 脚本。因此,我已经使用 paramiko 模块与远程主机建立了 SSH 连接并初始化了 SSH 客户端。
为了拒绝基于密码的 SSH 登录,我应该编辑 /etc/ssh/sshd_config
文件并将“PasswordAuthentication yes”行更改为“PasswordAuthentication no”
请注意,我的远程系统允许无密码 sudo
。我只需要在 sshd_config
文件中执行此替换操作。
下面给出的是我尝试过的命令:
ssh_client.exec_command("sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config")
我遇到了错误:couldn't open temporary file .sedVg2nV6: Permission Denied
有没有人遇到过这种情况?
除了 sed
之外,还有其他方法可以替换配置文件的一部分吗? sed
仅用于 .txt
个文件吗?
解决方法
我认为你应该改变ssh_client.exec_command("sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config")
到ssh_client.exec_command("sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config")
(sed 命令将以 root 权限执行)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。