appleboy/ssh-action 没有这样的设备或地址错误

Posted

技术标签:

【中文标题】appleboy/ssh-action 没有这样的设备或地址错误【英文标题】:appleboy/ssh-action No such device or address error 【发布时间】:2021-11-14 12:51:29 【问题描述】:

我正在尝试为 laravel 项目创建一个自动部署文件。

这是我的 yml 文件代码。 工作: 部署:

runs-on: ubuntu-latest

steps:
- name: Checkout
  uses: actions/checkout@v2 
- name: Deployment
  uses: appleboy/ssh-action@master
 
  with:
    host: $ secrets.SSH_HOST 
    key: $ secrets.SSH_PRIVATE_KEY 
    username: $ secrets.SSH_USERNAME 
    script: |
      cd path-to-my-directory

      git pull
      php artisan migrate

git pull 返回could not read Username for 'https://github.com': No such device or address 错误。但我确信username, key, host 设置正确。 无法解决问题或找到类似问题的解决方案

【问题讨论】:

【参考方案1】:

如果您设置了 SSH 密钥,而您的 URL 是 HTTPS 的,则不会使用该密钥。完全没有。

相反,Git 在 GitHub Action 中会尝试通过 HTTPS 获取私有存储库的凭据(用户名/密码)。

另外,SSH URL 无论如何都会使用用户名git,以及允许远程服务器对实际用户进行身份验证的私有 SSH 密钥。

您可以see here an example 的 GitHub Action 实际使用 SSH URL:

on: [push]

jobs:
  try-ssh-commands:
    runs-on: ubuntu-latest
    name: SSH MY_TEST
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: test_ssh
        uses: ./
        with:
          ssh_key: $secrets.SSH_PRIVATE_KEY
          known_hosts: $secrets.SSH_KNOWN_HOSTS

但是,如果您使用的是 HTTPS,并且如 cmets 中所述,请使用 OP:

您需要一个 PAT(个人访问令牌) 你需要存储它:git config credential.helper store + git pull

【讨论】:

我注意到 Github 实际上没有使用用户名密码对。如果我想手动拉,我必须使用个人访问令牌。但是我通过手动运行git config credential.helper storegit pull 解决了这个问题。之后工作流按预期运行 @TakhtakTeam 太好了,干得好。我已将您的评论包含在答案中以提高知名度。

以上是关于appleboy/ssh-action 没有这样的设备或地址错误的主要内容,如果未能解决你的问题,请参考以下文章

clang:错误:没有这样的文件或目录:'dynamic_lookup' clang:错误:没有这样的文件或目录:'suppress'

SQLSTATE[HY000] [2002] 没有这样的文件或目录。我知道有这样的问题。但他们没有帮助

没有这样的模块'mailcore'

没有这样的模块'PFFacebookUtils'

为啥 CopyOnWriteArrayList 中没有这样的 removeRange() 方法?

没有这样的模块“Alamofire”、“SwiftyJson”、“UiKiT”