我正在尝试保护我的 VPS(运行 Ubuntu 10.04),所以我尝试使用 RSA 身份验证,显然我不想以 root 身份登录,所以我禁用了,PermitRootLogin
但我也禁用了PasswordAuthentication
我的问题是,如何才能让我的 RSA 密钥与普通用户进行身份验证。就像我说的,当我启用这些设置时,我可以让它在 root 下工作,但我不知道如何在没有这些设置的情况下让它与普通用户一起工作。
答案1
您应该能够将公钥放入 ~/.ssh/authorized_keys 或 ~/.ssh/authorized_keys2(模式 600)并使其像 root 帐户一样工作。
执行这些命令来更正权限
chmod 600 ~/.ssh/authorized_keys2
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
答案2
您需要先在服务器上进行一些设置。
生成你的密钥(看起来你已经很熟练了)
ssh-keygen -t rsa -b 1024 -C "Comment if you want it" -f id_arbitraty_name
将公共 (*.pub) 密钥添加到
authorized_keys
您要以之登录的用户的文件夹中(正如@John提到的,这些用户的文件夹为 644);扩展将对和都执行此authorized_keys
操作authorized_keys2
。cat id_arbitrary_name.pub >> /home/<username>/.ssh/authorized_keys{,2}
下载私钥
scp user@server:/loc/on/server/id_arbitrary_name ~/.ssh/
为私钥 600 设置安全权限,因为它位于你的本地机器上
chmod 600 ~/.ssh/id_arbitrary_name
选修的:
如果你想在本地保存输入,请在 ~/.ssh/ 中设置本地配置文件
vim ~/.ssh/config Host SomeIdentifyingName Hostname domain.com User username IdentityFile ~/.ssh/id_arbitrary_name
这样您只需键入ssh SomeIdentifyingName
(制表符补全就可以了!)并连接即可。
笔记 看起来您已禁用 root 登录,因此这并不适用于您。但是,对于未来的读者:
综上所述,建议使用密钥隔离。否则,如果我不指定用户名,服务器会提示 - 显然,root 是值得尝试的!