我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • git

  • composer

  • linux

    • Linux
    • ssh
      • rsync上传本地文件到服务器
      • windows上使用multipass挂载本地文件
      • curl命令使用
      • 查询系统版本及硬件信息的
      • 操作linux上用户
      • crontab使用
      • systemctl使用
      • journalctl使用
      • ls查看文件及排序
      • 查询命令行日志记录
      • less详细使用
      • Vim使用案例
      • top的基本使用
    • nginx

    • docker

    • vpn

    • frp

    • 脚本

    • 硬件

    • 运维
    • linux
    窝窝侠
    2024-06-15

    ssh

    在 Windows 上使用 SSH 私钥连接到远程服务器,可以通过多种方式实现,常见的方法包括使用 PowerShell、命令提示符(cmd)、或第三方工具如 PuTTY。以下是使用 PowerShell 和 PuTTY 的详细步骤:

    # 方法 1:使用 PowerShell

    1. 确保 OpenSSH 已安装

      Windows 10 及以上版本通常已经自带 OpenSSH 客户端。如果没有,可以通过以下步骤安装:

      • 打开“设置” -> “应用” -> “可选功能”。
      • 点击“添加功能”。
      • 找到并安装“OpenSSH 客户端”。
    2. 将私钥文件保存到本地

      将你的私钥文件(例如 id_rsa)保存到一个安全的目录,例如 C:\Users\YourUsername\.ssh\。

    3. 设置正确的文件权限

      确保只有你自己可以读取私钥文件。你可以通过 PowerShell 设置文件权限:

      icacls C:\Users\YourUsername\.ssh\id_rsa /inheritance:r
      icacls C:\Users\YourUsername\.ssh\id_rsa /grant:r YourUsername:F
      
      1
      2
    4. 使用 SSH 命令连接到服务器

      打开 PowerShell,使用以下命令连接到你的服务器:

      ssh -i C:\Users\YourUsername\.ssh\id_rsa username@remote_host
      
      1

      其中:

      • -i 参数指定私钥文件路径。
      • username 是你在远程服务器上的用户名。
      • remote_host 是远程服务器的 IP 地址或域名。

    # 方法 2:使用 PuTTY

    1. 下载并安装 PuTTY

      从 PuTTY 官方网站 (opens new window) 下载并安装 PuTTY。

    2. 转换私钥文件格式

      PuTTY 使用 .ppk 格式的私钥文件。如果你的私钥是 OpenSSH 格式(例如 id_rsa),需要使用 PuTTYgen 工具进行转换。

      • 打开 PuTTYgen。
      • 点击“Load”按钮,选择你的私钥文件(例如 id_rsa)。
      • 点击“Save private key”按钮,将私钥保存为 .ppk 格式。
    3. 配置 PuTTY

      • 打开 PuTTY。
      • 在“Session”选项卡中,输入远程服务器的 IP 地址或域名。
      • 在“Connection” -> “SSH” -> “Auth”选项卡中,点击“Browse”按钮,选择你转换后的 .ppk 私钥文件。
      • 返回到“Session”选项卡,点击“Open”按钮连接到服务器。

    # 总结

    无论是使用 PowerShell 还是 PuTTY,连接过程都相对简单。PowerShell 适合那些习惯使用命令行工具的人,而 PuTTY 提供了一个图形化界面,可能更适合那些不熟悉命令行的用户。希望这些步骤能帮助你成功连接到远程服务器。如果你有更多问题,欢迎继续提问!

    如果在配置 SSH 私钥之后仍然被要求输入密码,可能有以下几种原因:

    1. 私钥文件路径或权限问题
    2. 服务器端配置问题
    3. SSH 客户端配置问题

    # 1. 私钥文件路径或权限问题

    确保私钥文件路径正确,并且文件权限设置正确。私钥文件应该只对当前用户可读。

    # 在 PowerShell 中检查:

    • 确保路径正确:

      ssh -i C:\Users\YourUsername\.ssh\id_rsa username@remote_host
      
      1
    • 确保权限设置正确:

      icacls C:\Users\YourUsername\.ssh\id_rsa /inheritance:r
      icacls C:\Users\YourUsername\.ssh\id_rsa /grant:r YourUsername:F
      
      1
      2

    # 2. 服务器端配置问题

    确保服务器端正确配置了公钥认证,并且你的公钥已经添加到服务器上的 ~/.ssh/authorized_keys 文件中。

    # 检查服务器端配置:

    • 确认公钥已添加:

      登录到服务器,检查 ~/.ssh/authorized_keys 文件,确保你的公钥在其中:

      cat ~/.ssh/authorized_keys
      
      1
    • 检查 sshd_config 配置文件:

      确保服务器的 SSH 配置文件 /etc/ssh/sshd_config 中启用了公钥认证:

      # 确保以下行没有被注释掉
      PubkeyAuthentication yes
      
      1
      2

      重新启动 SSH 服务以应用配置更改:

      sudo systemctl restart sshd
      
      1

    # 3. SSH 客户端配置问题

    确保 SSH 客户端(如 PuTTY)正确配置了私钥文件。

    # 在 PuTTY 中检查:

    • 打开 PuTTY,导航到 Connection -> SSH -> Auth。
    • 确认在 Private key file for authentication 字段中选择了正确的 .ppk 私钥文件。
    • 返回 Session 选项卡,输入服务器地址并点击 Open。

    # 其他可能的原因

    • 密钥对不匹配:确保你使用的私钥和服务器上 authorized_keys 文件中的公钥是匹配的一对。

    • SSH 代理:如果你使用了 SSH 代理(如 ssh-agent),确保私钥已正确添加到代理中。

      ssh-add C:\Users\YourUsername\.ssh\id_rsa
      
      1

    # 示例:完整配置过程

    假设你使用 PowerShell 连接到服务器,以下是一个完整的配置和连接过程:

    1. 保存私钥文件:

      将私钥文件 id_rsa 保存到 C:\Users\YourUsername\.ssh\。

    2. 设置文件权限:

      icacls C:\Users\YourUsername\.ssh\id_rsa /inheritance:r
      icacls C:\Users\YourUsername\.ssh\id_rsa /grant:r YourUsername:F
      
      1
      2
    3. 连接到服务器:

      ssh -i C:\Users\YourUsername\.ssh\id_rsa username@remote_host
      
      1

    # 总结

    通过检查私钥文件路径和权限、确保服务器端配置正确,以及验证 SSH 客户端配置,你应该能够解决被要求输入密码的问题。如果这些步骤仍然无法解决问题,请检查 SSH 日志以获取更多详细信息。希望这些信息对你有所帮助!如果你有更多问题,欢迎继

    在线编辑 (opens new window)
    上次更新: 2025/02/25, 18:30:54
    Linux
    rsync上传本地文件到服务器

    ← Linux rsync上传本地文件到服务器→

    最近更新
    01
    showprocess用法
    04-29
    02
    vue3中尖括号和冒号的使用细则
    04-29
    03
    sd使用
    02-22
    更多文章>
    🖥️

    © 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×