簡體   English   中英

使用 .ssh/authorized_keys 授權我的 git 服務器不起作用

[英]Authorizing to my git server with `.ssh/authorized_keys` does not work

我用 debian bullseye 在我的 NAS 上設置了一個 git server 2.30.2。

用戶是git主目錄/media/nas/programming/git_repos/和 shell /bin/bash

主目錄及其所有子目錄/文件都歸git:git所有。

主目錄具有770權限,主目錄內的目錄.ssh具有700權限。

我使用命令ssh-keygen -t ed25519 -C mymail@gmail.com創建私鑰/公鑰(或第二次嘗試ssh-keygen -t rsa -C mymail@gmail.com )。

公鑰變為/media/nas/programming/git_repos/.ssh/authorized_keys所有權,400 權限),私鑰變為 c git:git c:/Users/<username>/.ssh/id_ed25519 (或第二次嘗試c:/Users/<username>/.ssh/id_rsa Windows PC 上的c:/Users/<username>/.ssh/id_rsa )。

/etc/ssh/sshd_config我有一行AllowUsers root git...

現在,使用 Git GUI,我正在嘗試使用 url url = git@10.0.0.2:my_project連接到遠程(比如說獲取)。

最初它要求密碼解密id_ed25519 (或第二次嘗試id_rsa )。

然后它要求git@10.0.0.2的密碼,這意味着 Git 服務器根本不計算.ssh/authorized_keys

我在這里做錯了什么?

update ssh -Tv git@10.0.0.2就不多說了:

 ....
 debug1: Authentications that can continue: publickey,password
 debug1: Next authentication method: publickey
 debug1: Trying private key: C:\\Users\\chameleon/.ssh/id_rsa
 debug1: Trying private key: C:\\Users\\chameleon/.ssh/id_dsa
 debug1: Trying private key: C:\\Users\\chameleon/.ssh/id_ecdsa
 debug1: Trying private key: C:\\Users\\chameleon/.ssh/id_ed25519
 debug1: read_passphrase: can't open /dev/tty: No such file or directory
 Enter passphrase for key 'C:\Users\chameleon/.ssh/id_ed25519':     <---- Here I give the password
 debug1: Authentications that can continue: publickey,password
 debug1: Trying private key: C:\\Users\\chameleon/.ssh/id_xmss
 debug1: Next authentication method: password
 debug1: read_passphrase: can't open /dev/tty: No such file or directory
 git@10.0.0.2's password:    <---- Here I give the password. After that, connection established.

確保您在遠程端 (NAS ~git) 具有正確的權限:如果“其他人”可以寫入任何內容,SSH 將不會考慮authorized_keys文件。

然后使用ssh -Tv git@10.0.0.2測試您的連接並確認您的c:/Users/<username>/.ssh/id_ed25519已被考慮和建議。
如果是,請考慮在 NAS 上以調試模式啟動 sshd,以查看在執行ssh -Tv測試命令期間是否彈出任何錯誤消息。

回答我的問題:

快速:git主文件夾的權限從770更改為750

臃腫:

正如@VonC 上面所說,我在端口12345中使用調試3模式啟動了一個新的sshd實例:

sshd -p 12345 -ddd

然后我將MyProjectFolder/.git/config中的遠程存儲庫鏈接替換為:

[remote "MyNAS"]
        url = ssh://git@10.0.0.2:my_project

[remote "MyNAS"]
        url = ssh://git@10.0.0.2:12345/~/my_project

然后我嘗試fetch

sshd實例響應git主文件夾沒有正確的所有權和/或權限。

我將git主文件夾從770更改為750 ,現在可以使用了。

PS:組寫集,因為我的user屬於git組,我覺得對git repo的寫權限是一個方便的權限。 沒關系。 它不是那么有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM