使用非 root 用户使用 SSH RSA 密钥

使用非 root 用户使用 SSH RSA 密钥

我正在尝试保护我的 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

您需要先在服务器上进行一些设置。

  1. 生成你的密钥(看起来你已经很熟练了)

    ssh-keygen -t rsa -b 1024 -C "Comment if you want it" -f id_arbitraty_name
    
  2. 将公共 (*.pub) 密钥添加到authorized_keys您要以之登录的用户的文件夹中(正如@John提到的,这些用户的文件夹为 644);扩展将对和都执行此authorized_keys操作authorized_keys2

    cat id_arbitrary_name.pub >> /home/<username>/.ssh/authorized_keys{,2}
    
  3. 下载私钥

    scp user@server:/loc/on/server/id_arbitrary_name ~/.ssh/
    
  4. 为私钥 600 设置安全权限,因为它位于你的本地机器上

    chmod 600 ~/.ssh/id_arbitrary_name
    

选修的:

  1. 如果你想在本地保存输入,请在 ~/.ssh/ 中设置本地配置文件

    vim ~/.ssh/config
    
    Host SomeIdentifyingName
        Hostname domain.com
        User username
        IdentityFile ~/.ssh/id_arbitrary_name
    

这样您只需键入ssh SomeIdentifyingName(制表符补全就可以了!)并连接即可。

笔记 看起来您已禁用 root 登录,因此这并不适用于您。但是,对于未来的读者:

综上所述,建议使用密钥隔离。否则,如果我不指定用户名,服务器会提示 - 显然,root 是值得尝试的!

相关内容