ssh 公钥配置

  1. 手动修改
  2. ssh 配置
  3. 通过ssh-copy-id传入

手动修改

如果你想手动修改 authorized_keys 文件,可以按照以下步骤:

  1. 生成公钥(如果还没有)
    如果还没有公钥,可以使用以下命令生成:

    ssh-keygen -t rsa -b 4096
    
  2. 手动复制公钥
    找到你的公钥,通常位于 ~/.ssh/id_rsa.pub。使用命令查看:

    cat ~/.ssh/id_rsa.pub
    
  3. 登录到远程服务器
    使用 SSH 登录到远程服务器:

    ssh username@remote_host
    
  4. 编辑 authorized_keys 文件
    在远程服务器上,使用文本编辑器(如 nanovim)打开 ~/.ssh/authorized_keys 文件:

    nano ~/.ssh/authorized_keys
    
  5. 添加公钥
    将复制的公钥粘贴到文件的末尾,确保每个公钥在单独的一行。

  6. 保存并退出
    保存文件并退出编辑器。

  7. 检查权限
    确保 ~/.ssh 目录和 ~/.ssh/authorized_keys 文件的权限正确:

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

ssh 配置

要配置 SSH 仅支持公钥登录

  1. 登录到远程服务器
    使用 SSH 登录到远程服务器:

    ssh username@remote_host
    
  2. 编辑 SSH 配置文件
    打开 SSH 配置文件 /etc/ssh/sshd_config

    sudo vim /etc/ssh/sshd_config
    
  3. 修改配置
    确保以下配置项如下设置:

    PubkeyAuthentication yes
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    
  4. 确保公钥文件存在
    确保你的公钥已添加到 ~/.ssh/authorized_keys 文件中,并且权限正确:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  5. 保存并退出
    保存文件并退出编辑器。

  6. 重启 SSH 服务
    重启 SSH 服务以应用更改:

    sudo systemctl restart ssh
    

通过ssh-copy-id传入

要配置 SSH 公钥免登录,可以按照以下步骤进行:

  1. 生成 SSH 密钥对(如果还没有)
    在终端中运行以下命令:

    ssh-keygen -t rsa -b 4096
    

    按照提示选择存储位置(默认是 ~/.ssh/id_rsa)和密码(可以留空)。

  2. 将公钥复制到远程服务器
    使用 ssh-copy-id 命令将公钥复制到远程服务器:

    ssh-copy-id username@remote_host
    

    替换 usernameremote_host 为你的用户名和远程主机的地址。输入密码后,公钥会被添加到远程主机的 ~/.ssh/authorized_keys 文件中。

  3. 测试免登录
    尝试连接到远程主机,看看是否可以免输入密码:

    ssh username@remote_host
    
  4. (可选)检查权限
    确保 ~/.ssh 目录和 ~/.ssh/authorized_keys 文件的权限正确:

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

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。与我联系email c2VjaW5mby5tQGdtYWlsLmNvbQo=