Back to Codeberg

fj repo clone over SSH fails when remote key is unknown #240

forgejo-contrib-forgejo-cli-issues-240.md

latest9.5 KB
Original Source

forgejo-contrib/forgejo-cli

Watch20

Star402

Fork

You've already forked forgejo-cli

51

CodeIssues 44Pull requests 8Releases 11Packages 2WikiActivity

fj repo clone over SSH fails when remote key is unknown #240

New issue

Open

opened 2025-11-23 09:38:17 +01:00 by LordMZTE · 2 comments

LordMZTE commented 2025-11-23 09:38:17 +01:00

Collaborator

Copy link

When fj repo clone is invoked with a host where use-ssh is true but the key of the host is unknown to the local machine (which is usually the case when we first connect to the host), the command will fail like this:

bash
$ fh -H codeberg.org auth add-key LordMZTE
new key: XXX
$ fj -H codeberg.org use-ssh
now will use SSH for codeberg.org by default
# Now I upload my SSH key via the Web UI
$ fj -H codeberg.org repo clone forgejo-contrib/forgejo-cli
   Preparing...Error: invalid or unknown remote ssh hostkey; class=Ssh (23); code=Certificate (-17)

Location:
    src/repo.rs:1100:22

Git clone will ask if we want to trust the key first, like SSH usually does:

text
$ git clone ssh://[email protected]/LordMZTE/forgejo-cli.git
Cloning into 'forgejo-cli'...
The authenticity of host 'codeberg.org (2a0a:4580:103f:c0de::1)' can't be established.
ED25519 key fingerprint is: SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

We should probably do something similar here, if possible. This might also be too much of an edge case to even handle.

When fj repo clone is invoked with a host where use-ssh is true but the key of the host is unknown to the local machine (which is usually the case when we first connect to the host), the command will fail like this: bash $ fh -H codeberg.org auth add-key LordMZTE new key: XXX $ fj -H codeberg.org use-ssh now will use SSH for codeberg.org by default # Now I upload my SSH key via the Web UI $ fj -H codeberg.org repo clone forgejo-contrib/forgejo-cli Preparing...Error: invalid or unknown remote ssh hostkey; class=Ssh (23); code=Certificate (-17) Location: src/repo.rs:1100:22 Git clone will ask if we want to trust the key first, like SSH usually does: $ git clone ssh://[email protected]/LordMZTE/forgejo-cli.git Cloning into 'forgejo-cli'... The authenticity of host 'codeberg.org (2a0a:4580:103f:c0de::1)' can't be established. ED25519 key fingerprint is: SHA256:mIlxA9k46MmM6qdJOdMnAQpzGxF4WIVVL+fj+wZbw0g This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? We should probably do something similar here, if possible. This might also be too much of an edge case to even handle.

LordMZTE added the Kind/Bug label 2025-11-23 09:38:17 +01:00

Cyborus commented 2025-11-27 02:55:54 +01:00

Member

Copy link

I'm wary about handling sensitive things like SSH trust. We could maybe call out to the git binary for SSH operations? Using both the git binary and git2 library could get clunky, but it seems worth a shot.

I'm wary about handling sensitive things like SSH trust. We could maybe call out to the git binary for SSH operations? Using both the git binary and git2 library could get clunky, but it seems worth a shot.

dw0x commented 2026-05-13 16:41:51 +02:00

Copy link

a workaround for that is to prepoulate the key, e.g.

text
mkdir -p $HOME/.ssh
ssh-keyscan -H codeberg.org > $HOME/.ssh/known_hosts

this could be a documentation thing or part of the error message

a workaround for that is to prepoulate the key, e.g. mkdir -p $HOME/.ssh ssh-keyscan -H codeberg.org \> $HOME/.ssh/known_hosts this could be a documentation thing or part of the error message

Sign in to join this conversation.

No Branch/Tag specified

BranchesTags

main

renovate/lock-file-maintenance

renovate/serde-saphyr-0.x

docs/contributing

no-port-in-refspec

login/v16.next.forgejo.org

crates-io-publish

0.5.x

compile-time-fluent

0.4.x

localization-alias-demo

api_url_field

v0.5.0

v0.4.1

v0.4.0

v0.3.0

v0.2.0

v0.1.1

v0.1.0

v0.0.4

v0.0.3

v0.0.2

v0.0.1

Labels

Clear labels[ Kind/Breaking Breaking change that won't be backward compatible

](#)[ Kind/Bug Something is not working

](#)[ Kind/Design Discussion about UI/UX design

](#)[ Kind/Documentation Documentation changes

](#)[ Kind/Enhancement Improve existing functionality

](#)[ Kind/Feature New functionality

](#)[ Kind/Security This is security issue

](#)[ Kind/Testing Issue or pull request related to testing

](#)[ Kind/Upstream This is an issue with upstream software (Forgejo) that is probably not our fault

](#)

[ Priority

Critical The priority is critical

](#)[ Priority

High The priority is high

](#)[ Priority

Low The priority is low

](#)[ Priority

Medium The priority is medium

](#)

[ Reviewed

Confirmed Issue has been confirmed

](#)[ Reviewed

Duplicate This issue or pull request already exists

](#)[ Reviewed

Invalid Invalid issue

](#)[ Reviewed

Won't Fix This issue won't be fixed

](#)

[ Status

Abandoned Somebody has started to work on this but abandoned work

](#)[ Status

Blocked Something is blocking this issue or pull request

](#)[ Status

Need More Info Feedback is required to reproduce issue or to continue work

](#)

[ Suspicious

](#)

No labels Kind/Breaking Kind/Bug Kind/Design Kind/Documentation Kind/Enhancement Kind/Feature Kind/Security Kind/Testing Kind/Upstream [ Priority

Critical ](/forgejo-contrib/forgejo-cli/issues?labels=173012) [ Priority

High ](/forgejo-contrib/forgejo-cli/issues?labels=173013) [ Priority

Low ](/forgejo-contrib/forgejo-cli/issues?labels=173015) [ Priority

Medium ](/forgejo-contrib/forgejo-cli/issues?labels=173014) [ Reviewed

Confirmed ](/forgejo-contrib/forgejo-cli/issues?labels=173007) [ Reviewed

Duplicate ](/forgejo-contrib/forgejo-cli/issues?labels=173005) [ Reviewed

Invalid ](/forgejo-contrib/forgejo-cli/issues?labels=173006) [ Reviewed

Won't Fix ](/forgejo-contrib/forgejo-cli/issues?labels=173008) [ Status

Abandoned ](/forgejo-contrib/forgejo-cli/issues?labels=173011) [ Status

Blocked ](/forgejo-contrib/forgejo-cli/issues?labels=173010) [ Status

Need More Info ](/forgejo-contrib/forgejo-cli/issues?labels=173009) Suspicious

Milestone

Clear milestone

No items

No milestone

Projects

Clear projects

No items

No project

Assignees

Clear assignees

No assignees

3 participants

Notifications Subscribe

Due date

The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference

forgejo-contrib/forgejo-cli#240

WritePreview

Loading…

Add table

| Rows | | | Columns | |

CancelOK

Add a link

Url Description Hint: With a URL in your clipboard, you can paste directly into the editor to create a link.

CancelOK

CancelSave

Reference in a new issue

Repository

forgejo-contrib/forgejo-cli

Title

Body

Create issue

No description provided.

Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?

No Yes