shell Github action ->SSH连接故障

ctrmrzij  于 2023-04-07  发布在  Shell
关注(0)|答案(1)|浏览(188)

我有一个问题与我的github行动,我不能连接到ssh我这样做:

  • 使用用户adam创建一个ssh密钥
  • 将公钥复制到/root/.ssh/authorized_keys
  • 使用公钥在github中创建一个secret
  • 在script.sh/home/adam/中创建一个www.example.com
  • chmod 600.ssh目录

但是我得到了这个错误:
运行ssh -o StrictHostKeyChecking=no
警告:身份文件/home/adam/.ssh/id_rsa不可访问:没有此类文件或目录。警告:已将“my Ip”(ED 25519)永久添加到已知主机列表。adam@my Ip:权限被拒绝(公钥、密码、键盘交互)。错误:进程已完成,退出代码为255。
这是我的代码:

name: Run script on VPS
on:
  push:
    branches: [master]
jobs:
  run-script:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Run script
        env:
          SSH_PRIVATE_KEY: ${{ secrets.VPS_SSH_PUBLIC_KEY }}
        run: |
          ssh -o StrictHostKeyChecking=no \
              -o PasswordAuthentication=no \
              -i /home/adam/.ssh/id_rsa \
              adam@myip \
              "bash /home/adam/script.sh"

有人能帮我修一下吗?

  • 尝试验证id_rsa和id_rsa.pub的路径是否正确
  • 我看到两个文件都在那里,里面有一把好钥匙
  • 尝试recreate ssh key multiples time
  • 尝试不同的方式访问ssh
  • 验证conf open ssh accept rsa并添加此行CASignatureAlgorithms +ssh-rsa
  • 重新启动服务ssh
vybvopom

vybvopom1#

将公钥复制到/root/.ssh/authorized_keys
它位于您要通过SSH * 连接到的远程目标服务器上。
这意味着你想以root身份SSH到:root@remoteServer:...
不作为adam@...
不要依赖GitHub runner上不存在的本地路径(除非是自托管的),您可能需要使用GitHub Action“appleboy/ssh-action

- name: ssh key passphrase
    uses: appleboy/ssh-action@v0.1.9
    with:
      host: ${{ secrets.HOST }}
      username: ${{ secrets.USERNAME }}
      key: ${{ secrets.KEY }}
      port: ${{ secrets.PORT }}
      passphrase: ${{ secrets.PASSPHRASE }}
      script: |
        whoami
        ls -al

如果您的SSH私钥不受密码保护,请删除passphrase: ${{ secrets.PASSPHRASE }}行。
这样,您就不需要使用正确的权限创建.ssh/文件夹。该操作会为您处理所有这些。

相关问题