0%

免密码ssh连接远程主机

本地终端和vscode

Mac

  1. 在本地 macOS 终端中,显示并复制你的公钥内容

    1
    cat ~/.ssh/id_rsa.pub

    (选中输出的全部内容,按 Command + C 复制。如果没有 id_rsa.pub,请先执行 ssh-keygen -t rsa 生成)

  2. SSH 登录到服务器(更改ip和端口,需要输入密码):

    1
    ssh root@1.1.1.1 -p 1234
  3. 在服务器上执行以下命令

    1
    2
    3
    4
    5
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    echo "在此处粘贴你复制的公钥内容" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    exit

    (将 在此处粘贴你复制的公钥内容 替换为你第 1 步复制的实际公钥字符串)

  4. 完成。再次尝试 SSH 登录应不再需要密码。

Win

  1. 在本地 Windows PowerShell 中,显示并复制你的公钥内容

    1
    type $env:USERPROFILE\.ssh\id_rsa.pub

    (选中输出的全部内容,按 Ctrl+C 复制。如果没有 id_rsa.pub,请先执行 ssh-keygen -t rsa 生成)

  2. SSH 登录到服务器(更改ip和端口,需要输入密码):

    1
    ssh root@1.1.1.1 -p 1234
  3. 在服务器上执行以下命令

    1
    2
    3
    4
    5
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    echo "在此处粘贴你复制的公钥内容" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    exit

    (将 在此处粘贴你复制的公钥内容 替换为你第 1 步复制的实际公钥字符串)

  4. 完成。再次尝试 SSH 登录应不再需要密码。

MobaXterm

使用 ssh-copy-id (在 MobaXterm 本地终端)

  1. 打开 MobaXterm 的 “Local terminal” (本地终端)。
  2. 确保本地已有 SSH 密钥对。若无,执行:
    1
    ssh-keygen -t rsa
    (一路回车,不要设置密码。密钥默认存放在 MobaXterm 环境的 ~/.ssh/ 目录,通常对应 Windows 下的 C:\Users\YourUsername\Documents\MobaXterm\home\.ssh\C:\Users\YourUsername\.ssh\)
  3. 执行以下命令将公钥复制到服务器:
    1
    ssh-copy-id -p 1234 root@1.1.1.1
    (此过程会要求输入一次 root 用户在 1.1.1.1 服务器上的密码。)
  4. 完成后,下次通过 MobaXterm 的本地终端或创建的会话连接 root@1.1.1.1 -p 1234 将不再需要密码。