You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何添加指定SSH公钥到服务器实现用户访问及测试用户user1的配置疑问

如何添加指定SSH公钥到服务器实现用户访问及测试用户user1的配置疑问

看起来你在配置SSH公钥登录的时候搞混了几个关键点,我来一步步帮你理清楚:

首先,先纠正你写错的命令——应该是ssh-copy-id而不是ip-copy-id,这个小失误可能让你之前的操作没达到预期。

接下来,核心问题:公钥是要放到你想要登录的目标用户的目录下,而不是root的目录里。你现在想让user1能通过SSH公钥登录服务器,那公钥应该存到user1的~/.ssh/authorized_keys文件里,而不是root的/authorized_keys(哦对了,root的公钥目录应该是/root/.ssh/authorized_keys,你写的路径也不对)。

正确的配置步骤(针对测试用户user1):

  1. 生成公钥(如果还没在客户端生成的话)
    如果你是在本地客户端操作,先生成密钥对:

    ssh-keygen -t rsa
    

    一路回车默认配置就行,生成的公钥在~/.ssh/id_rsa.pub。

  2. 把公钥复制到服务器的user1账户下
    在客户端执行这个命令,会自动帮你创建user1的.ssh目录并把公钥写入authorized_keys:

    ssh-copy-id user1@你的服务器IP
    

    执行的时候会要求你输入user1的密码,输入后就完成复制了。

  3. 检查并修复权限(非常重要!)
    SSH对权限要求很严格,权限太宽会直接拒绝登录。登录到服务器,切换到user1账户,执行:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

    确保.ssh目录是700(只有自己能读写执行),authorized_keys是600(只有自己能读写)。

  4. 确认sshd_config的关键配置
    你已经改了sshd_config只允许SSH访问,再检查这几个配置项是否正确:

    PubkeyAuthentication yes       # 开启公钥认证
    PasswordAuthentication no      # 禁用密码登录(如果需要的话)
    AuthorizedKeysFile .ssh/authorized_keys  # 指定公钥文件路径,默认就是这个,不用改
    

    改完后重启SSH服务:

    # 系统d的发行版(比如Ubuntu 16.0+/CentOS 7+)
    systemctl restart sshd
    # 老版本用service
    service ssh restart
    

回答你的疑问:“do I need to add something to my user1 directories?”

当然需要!就是上面说的,把公钥放到user1自己的~/.ssh/authorized_keys里,并且设置正确的权限。之前你把公钥放到root的目录里,那是给root用户配置公钥登录用的,和user1没关系。

测试登录

现在从客户端执行:

ssh user1@你的服务器IP

如果不用输入密码就能登录,说明配置成功了。

备注:内容来源于stack exchange,提问作者jsnjdhs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 07:59:06