设置git ssh访问错误:gitosis需要多于1个值才能解压缩

Sea*_*ean 6 git ssh ubuntu ssh-keys

当我设置git运行时ssh,我收到以下错误:

file "usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/init.py", 
line 35, in ssh_extract_user 
_, user = pubkey.rsplit(None, 1)
ValueError: need more than 1 value to unpack
Run Code Online (Sandbox Code Playgroud)

我输入的命令:

sudo -H -u git gitosis-init < /home/sean/.ssh/pubkey.pub
Run Code Online (Sandbox Code Playgroud)

我正在运行ubuntu长版本服务器8.04

ama*_*mar 5

我通过修改生成的公钥文件修复了这个问题,最后添加了用户名,删除了特殊字符并用gitosis注册了公钥.

如果公钥是

ssh-rsa AAAAB3NzaC1yc2E ....... ..... ..... == user@3435-343-3434.somedomain.com

将此更新为

ssh-rsa AAAAB3NzaC1yc2E ....... ..... ..... == user@somedomain.com

进一步参考https://bugzilla.redhat.com/show_bug.cgi?id=470359


Von*_*onC 4

这应该与您的 ssh 密钥格式有关,如该线程所示

\n\n
\n

PuttyGen在 Windows 上使用生成我的公钥 ( SSH2 RSA 1024) 并将其保存在本地,然后将其上传到/tmp/id_rsa.pubusing pscp,但是当我运行时

\n
\n\n
sudo -H -u git gitosis-init < /tmp/id_rsa.pub\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

我不断收到错误,例如:

\n
\n\n
gitosis.init.InsecureSSHKeyUsername: Username contains not allowed characters: \xe2\x80\x98\xe2\x80\x94\xe2\x80\x98\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

或者:

\n
\n\n
gitosis.init.InsecureSSHKeyUsername: Username contains not allowed characters:\xe2\x80\x99\xe2\x80\x9drsa-key-20081202\xe2\x80\x9d\xe2\x80\x99\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

或者(在我删除了文件中除密钥本身之外的所有内容之后):

\n
\n\n
ValueError: need more than 1 value to unpack\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

我认为PuttyGen生成了一个SSH2格式稍有不同的公钥文件,并且 \xe2\x80\x98 git gitosis-init\xe2\x80\x99 在开头想要一个用户名,所以我去了这里:

\n
\n\n

http://www.rfc-archive.org/getrfc.php?rfc=4716

\n\n
\n

并看到我可以保留 \xe2\x80\x9c \xe2\x80\x94BEGIN\xe2\x80\xa6\xe2\x80\x9d 和 \xe2\x80\x9c \xe2\x80\x94END\xe2\x80\x9d 部分,并替换 \xe2\x80\x9c \ comment: ...xe2\x80\x9d 行(由 PuttyGen 生成),其中一行内容为:

\n
\n\n
subject: git\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

它成功了!我得到了输出:

\n
\n\n
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/ \nReinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/\n
Run Code Online (Sandbox Code Playgroud)\n