3

我想将我的 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 密钥的选项)。

4

1 回答 1

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

于 2018-03-07T05:13:36.967 回答