我之前能够使用密码身份验证通过 SSH 连接到该远程服务器。我想改变它以使其使用私钥/公钥对。我按照必要的步骤生成密钥对,编辑文件/etc/ssh/sshd_config
以启用 RSA 和 Pubkey 身份验证,并禁用密码身份验证:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no
问题是我(错误地)将该文件移出远程主机中authorized_keys
的文件夹。~/.ssh/
因此,退出远程主机后,我无法通过 SSH 重新登录,因为它无法识别我的私钥,并显示以下消息:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
我现在是否被永久锁定在远程服务器之外?有没有办法authorized_keys
在 SSH 命令本身中指定文件的位置?
答案1
不可以,您无法从连接端指定备用位置。这是故意的,也是 ssh 安全性的一部分。如果某些文件具有错误的文件权限(即~/.ssh
存储在其中的许多文件),则即使位于正确的位置,ssh 服务器也不会使用某些文件。
如果您删除了密码身份验证并重新启动了 ssh 守护进程/服务,则需要修复本地服务器上的authorized_keys 文件的问题,或者将配置选项更改回允许密码身份验证并重新启动 sshd。