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