[英]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.