我正在尝试编辑 etc/ssh(Ubuntu AWS EC2 服务器)文件夹中的 sshd_config 文件。我正在使用 FileZilla 更改端口,但无论我做什么,它都不会接受更改。
我收到一条错误消息:
Error: /etc/ssh/sshd_config: open for write: permission denied
我尝试将权限更改为 600(当前为 644),但是这也不起作用,错误显示:
set attrs for /etc/ssh/sshd_config: permission denied
我也尝试将文件保存到我的桌面,但什么也没发生 - 只是说上传失败。
如果我尝试使用终端(在 Mac 上)访问服务器,我会得到以下信息:
ssh ubuntu@remote_host
Permission denied (publickey).
我对 ssh 还很陌生,正在努力边学边做,所以如果我说的不是很清楚,我深感抱歉。
我想要做的就是更改服务器端口并将其设置PermitRootLogin
为no
。
答案1
我注意到的第一件事是你没有使用公钥进行 ssh 连接。创建 AWS 实例时,系统应该提示你下载密钥。假设你这样做了,那么你的 ssh 应该看起来像(从任何终端程序,如 puTTY 或 iTerm)
ssh -i keyname.pem ubuntu@remotehost
以 ubuntu 用户身份登录后,您需要 root 权限才能编辑文件sshd_config
。您知道如何在 Ubuntu 中使用 vi 或 nano 文件编辑器吗?
# sudo vi /etc/ssh/sshd_config
或者
# sudo nano /etc/ssh/sshd_config
谨慎进行更改,否则您将失去对实例的所有访问权限。您已经无法以 root 身份进行 ssh...默认情况下,您只能以 ubuntu 用户身份进行 ssh。
答案2
所有类似于权限被拒绝的错误消息都表明,你正在以普通用户的身份执行操作。他们无权更改诸如此类的重要系统文件sshd_config
。
您必须以 root 身份登录,或使用以下方式提升权限至 root:
sudo bash
命令。