【问题标题】:GitHub actions workflow error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remainGitHub操作工作流程错误:ssh:握手失败:ssh:无法验证,尝试的方法[无密码],没有支持的方法
【发布时间】:2022-11-10 21:11:09
【问题描述】:

标题几乎不言自明,ssh 连接失败。我旁边有物理服务器,它位于连接到 ssh 之前的 vpn 下。

似乎服务器拒绝了用户/密码对,但它在我计算机上的终端上运行良好。

sshd_config 文件有密码验证是我重新启动了 ssh 服务服务 ssh 重启.

这是工作流程:

name: Deployment
on:
  push:
    branches: [ master ]
jobs:
  deploy:
    runs-on: ubuntu-20.04
    steps:
      - name: Set up WireGuard
        uses: egor-tensin/setup-wireguard@v1
        with:
          endpoint: ${{ secrets.WIREGUARD_ENDPOINT }}
          endpoint_public_key: ${{ secrets.WIREGUARD_ENDPOINT_PUBLIC_KEY }}
          ips: ${{ secrets.SERVER_IP }}
          allowed_ips: ${{ secrets.WIREGUARD_ALLOWED_IPS }}
          private_key: ${{ secrets.WIREGUARD_PRIVATE_KEY }}
      - name: Deploy to server
        # don't run locally
        if: ${{ !env.ACT }}
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.SERVER_IP }}
          username: ${{ secrets.SERVER_USERNAME }}
          key: ${{ secrets.SERVER_PRIVATE_KEY }}
          port: ${{ secrets.DEPLOY_PORT }}
          script: |
            cd ${{ secrets.PROJECT_PATH }}
            git pull ${{secrets.REPO_URL}}
            docker-compose down 
            docker-compose up --build -d


编辑:我注意到不使用 sudo 重置 ssh 服务时出现身份验证错误:

Edit2:我跳过了 PAM 身份验证,现在重新启动工作,但 ssh 连接仍然没有。

【问题讨论】:

  • sshsshd 不同。确保已将 PasswordAuthentication 设置为 yes固态混合硬盘文件,然后重新启动sshd 服务。
  • 感谢您的回复,刚刚使用服务 sshd 重启,同样的事情发生
  • 注意到一些非常有趣的事情,当尝试在没有 sudo 的情况下重新启动它时,我得到一个身份验证错误,我将添加上面的图像
  • 连接到 vpn 时来自网络外部的 ssh 连接工作正常

标签: ssh github-actions


【解决方案1】:

我不确定电线保护部分,但 appleboy/ssh-action@master 需要密钥和密码

      - name: Deploy PROD environment images
    uses: appleboy/ssh-action@master
    if: env.CURRENT_BRANCH == 'master'
    with:
      host:       ${{ secrets.SSH_HOST_PROD }}
      port:       ${{ secrets.SSH_PORT }}
      username:   ${{ secrets.SSH_USERNAME }}
      key:        ${{ secrets.SSH_PRIVATE_KEY }}
      passphrase: ${{ secrets.SSH_PASSPHRASE }}
      script: |
        cd ${{ secrets.PROJECT_PATH }}
        git pull ${{secrets.REPO_URL}}
        docker-compose down 
        docker-compose up --build -d

您可以将这些命令隐藏到脚本中:

#!/bin/bash -x
git pull {LINK_TO_YOUR_REPO} && docker-compose down && docker-compose up --build -d

这样您将拥有:

  - name: Deploy PROD environment images
uses: appleboy/ssh-action@master
if: env.CURRENT_BRANCH == 'master'
with:
  host:       ${{ secrets.SSH_HOST_PROD }}
  port:       ${{ secrets.SSH_PORT }}
  username:   ${{ secrets.SSH_USERNAME }}
  key:        ${{ secrets.SSH_PRIVATE_KEY }}
  passphrase: ${{ secrets.SSH_PASSPHRASE }}
  script: |
    cd ${{ secrets.PROJECT_PATH }}
    ./your_script

【讨论】:

  • 添加密码仍然无法连接到服务器,很奇怪
  • 你添加了你的 ssh PRIVATE 密钥还是 PUBLIC 密钥?你可以用同一个 ssh 私钥连接这个服务器吗?您是否将 ssh 公钥添加到 ~/.ssh/authorized_keys ?
【解决方案2】:

解决了

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

【讨论】:

    猜你喜欢
    • 2021-02-22
    • 1970-01-01
    • 2022-06-21
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    相关资源
    最近更新 更多