如何在Git服务器上插入SSH密钥(仅限git-shell访问)

时间:2016-03-18 10:41:56

标签: git ssh-keys git-shell

我想将SSH密钥添加到git服务器(公司服务器)上的授权密钥,每次推送时都不必插入密码。但由于某种原因,我无法使其发挥作用。

我尝试了什么:

ssh-copy-id user@server
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@server's password: 
fatal: unrecognized command '
        umask 077 ;
        mkdir -p .ssh && cat >> .ssh/authorized_keys || exit 1 ;
        if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi'

当我尝试ssh到git服务器时,我得到以下响应:

fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.

显然用户帐户正在使用git-shell,似乎它不理解通常的shell命令。

是否仍然可以以某种方式将公共SSH密钥添加到git服务器用户帐户?是否有一些git命令允许我将我的公共SSH密钥放到列表中?

我对git服务器的唯一访问是通过命令行运行GitWeb接口(但在那里我没有看到任何安装SSH密钥的选项)。

1 个答案:

答案 0 :(得分:1)

您应该联系您的系统管理员,确保没有其他人的书面许可,请确认用户主页目录权限。

/home/user/.ssh权限建议成为其群组并拥有0700/home/user/authorized_keys权限0600

我认为user群组是git

# cd /home/user
# chown -R user:git  .ssh
# chmod 0700 .ssh
# chmod 0600 .ssh/authorized_keys

如果此文件(.ssh/authorized_keys),~/.ssh directory或用户的主目录可由其他用户写入,则该文件可能会被未经授权的用户修改或替换。在这种情况下,除非sshd选项设置为“否”,否则StrictModes将不允许使用它。

更多信息,请参阅man 8 sshd