git-shell如何限制用户ssh登陆实例

虽然git是分布式的版本管理系统,但对于团队项目开发,通常还是会在单独的服务器上创建一个git server。类似于svn,git server也有好几种配置方式。详情,可以参见git的文档http://git-scm.com/book/en/v2。这里,主要是从上述文档中摘出一部分,说明一下git-shell的用处。

假如,大家都使用ssh的方式来访问:

$ git clone git@10.3.0.99:project.git

这就意味者,访问者具有权限可以ssh登陆到服务器上:

$ ssh git@10.3.0.99

出于安全的考虑,我们最好限制用户只能进行git push/pull,但无法登陆。这可以使用git-shell来完成。

查看一下git-shell的位置:

$ which git-shell
/usr/bin/git-shell

将git-shell的路径添加到/etc/shells文件中,然后修改git用户的shell:

$ sudo chsh git

设置为/usr/bin/git-shell。这样,如果再使用ssh方式登陆,则会报错:

$ ssh git@10.3.0.99
git@10.3.0.99's password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-35-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

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

时间: 2024-10-23 02:18:16

git-shell如何限制用户ssh登陆实例的相关文章

js cookie教程,用户下次登陆实例

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/1999/xhtml" > <head> <title>js COOKIE 记住帐号或密码

CentOS中禁止用户ssh和sftp登陆的详解

  CentOS中禁止用户ssh和sftp登陆的详解          在linux中出于安全的需要,我们会禁止某些用户SSH登陆系统进行操作.我这里以centos操作系统为例记录下如何进行处理. 1.打开sshd的配置文件 ? 1 vi/etc/ssh/sshd_config 2.修改该配置文件,增加或修改如下行 ? 1 2 3 4 # 禁止用户user1登陆,多个空格分隔 DenyUsers user1 # 禁止用户组group1的所有用户登录,多个空格分隔 DenyGroups group

远程登录-shell脚本切换用户登陆ssh

问题描述 shell脚本切换用户登陆ssh 如题,怎么在脚本里面从root切换到普通用户,执行ssh远程登录命令操作其他主机,因为我的主程序必须在root下跑,而root是不允许ssh远程登录别的主机的 解决方案 shell 脚本之切换用户shell 脚本切换用户 解决方案二: 可以直接在shell里面直接写: su xxx[普通用户用户名] .

php入门用户登陆实例代码与教程

第一步 /* 先创建数据表 直接复制到你的phpmyadmin 直接运行就OK了.1 CREATE TABLE IF NOT EXISTS `useradmin` (   `id` int(4) NOT NULL auto_increment,   `username` varchar(20) default NULL,   `userpass` varchar(40) default NULL,   `logins` int(4) NOT NULL default '0' COMMENT '登

Linux 下 SSH 命令实例指南

Linux 下 SSH 命令实例指南 如果你已经在IT圈内混久了, 应该对 SSH 这个了不起的工具及其安全特性有所耳闻吧. 本教程可以让你在短时间内掌握通过 SSH 安全便利地连接到远程计算机的技术. 如果你对 SSH 还没什么概念, 可以先访问 维基百科 进行了解. 基本用法 最简单的 SSH 命令只需要指定用户名和主机名参数即可. 主机名可以是 IP 地址或者域名. 命令格式如下: $ ssh user@hostname 比如要在我的局域网内登录一个树莓派系统, 只需要简单的在命令行输入如

linux-Linux中,普通用户能够登陆,root却登陆不了。。

问题描述 Linux中,普通用户能够登陆,root却登陆不了.. 我在SecureCRTPortable打了exit退出后,再在VMware Workstation中以root登陆,却登陆不了,而普通用户却能登陆..我的密码没有记错(123456).但是就是登陆不了,这是什么原因导致的??怎么解决??请大虾们帮帮忙.. 解决方案 普通用户登录成功后用su - root看看能不能切换到root用户,如果能切换,可能是系统设置了不允许root用户ssh登录. 如果不能切换,可以重启进入单用户模式重置

linux中禁止root用户ssh远程登录并修改ssh远程登录端口

服务器的安全性不言而喻,服务器安全性设置的第一步就是堵住入口. 对于linux而言,堵住入口,就是不让别人能随便进入我们的服务器里面乱搞,不然一个命令 "rm  -rf  / ",后果不堪设想.所以不能让别人进入我们的服务器,更加不能让别人用root用户进去.所以最好的做法就是: 在linux上面设置禁止root用户远程登录,并且修改ssh端口[因为默认的端口是22,改了设置多一层障碍],然后我们需要登录进去的时候,就用一个没有权限的用户登录进去,然后再用su命令切换到root或者其他

linux shell except tcl login ssh Automatic interaction

/*************************************************************************************** * linux shell except tcl login ssh Automatic interaction * 声明: * 本程序是使用except自动登入远程目标机,并且执行commands文件中的命令给定的命令, * 可以对多个目标机进行测试,目标机的IP保存在shell的数组中,目前只支持相同的账户和密码.

技巧:ASP.NET 2.0防止同一用户同时登陆

asp.net|技巧 要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在.在这里使用一个cache存放已经登陆的用户名,但是还有一个问题就是要知道用户是什么时候离开系统的呢?这就要定期清除cache中的内容了,也就是设置一个cache的时间.这个时间可以跟用户的session值联系起来,刚好当用户session值失效的时候该用户在cache里面的信息也会被清空.这样就达到了防止同时登陆的效果,具体代码如下: 放在登陆成功的地方: stri