在Buffalo LS-WVL/E上安装git详细教程

Buffalo LS-WVL/E是一个双盘位的网络存储器NAS,硬件配置不错,价格也比较便宜,网上有很多改机的教程,可玩度比较高。

为了给它装上git,我花了几天的时间,在网上搜寻许久,终于成功装上了git。主要的困难就是ssh的配置问题。

我只用了一块硬盘,安装在盘位1上。如果将硬盘安装在盘位2上,重启后安装的软件会丢失

本教程基于1.64原版固件(其它版本未测试)。

要用到的几个工具软件:

acp_commander.jar http://download.csdn.net/detail/photondragon/5204545

PuTTY.exe http://download.csdn.net/detail/photondragon/5204553

一。改机root

1. 在盘位1装上一块全新硬盘(没分区的盘)。

2. 启动NAS,然后按下机器后面function,这会把机器还原为出厂设置并格式化硬盘(慎:这会清除硬盘上的所有数据,如果你的硬盘上有数据,要先备份)。过了几分钟,设置完成后NAS自动重启。打开浏览器,输入NAS的地址(默认是192.168.1.100),如果能打开设置界面,就表示NAS准备就绪了。

3. 准备一台windows机器,关闭windows防火墙。安装jre,地址http://java.com/zh_CN/download/manual.jsp

4. 下载acp_commander.jar。打开windows命令行,切换到acp_commander.jar所在的目录,输入以下命令以测试机器能否破解

java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c "ls /"

注意-pw后的参数"password"是web设置界面admin用户的登录密码,默认就是password,如果成功的话就能看到输出的根目录列表了!

5. 把root密码改为123456,你也可以改成别的。

java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c "(echo 123456;echo 123456)|passwd"

6. 修改sshd设置以允许root用户登录

java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config"

7. 修改sshd设置,关闭PAM

java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c "sed -i 's/UsePAM yes/UsePAM no/g' /etc/sshd_config"

8. 重启ssh服务

java -jar acp_commander.jar -t 192.168.1.100 -ip 192.168.1.100 -pw password -c "/etc/init.d/sshd.sh restart"

现在你可以用ssh登录LS-WVL了。

(注:以上几条命令可能会出错,注意看屏幕输出。如果对还有什么疑问,可以参考这篇文章http://i.592.net/?post=360,或者google一下,网上有很多关于改机的文章。)

二。安装git软件

1. 用PuTTY登录LS-WVL/E(默认地址192.168.1.100),用户root,密码是你在第一部分的步骤5设置的。

2.输入以下命令:

mkdir /mnt/disk1/temp
cd /mnt/disk1/temp
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/ls-mvkw-bootstrap_1.2-7_arm.xsh
sh ./ls-mvkw-bootstrap_1.2-7_arm.xsh
ipkg update
ipkg upgrade
ipkg install git

三。配置

这部分操作是创建并配置好一个用户,使其能通过ssh登录系统,专门用于进行git相关操作

1. 以root登录,创建git用户

groupadd git(创建组git)
useradd -g git -m git(创建用户git,属于组git,同时创建用户主目录/home/git)
passwd git(设置git用户密码)

然后根据提示输入两遍密码

2. 修改ssh服务器的配置文件/etc/sshd_config,输入

vi sshd_config

然后编辑如下参数设置

StrictModes no(如果.ssh目录及相关文件的权限和拥有人owner等都能严格正确设置,可以设为yes)

UsePrivilegeSeparation no(这是必须的,否则git用户无法登录)

PermitUserEnvironment yes(必须的,使ssh加载用户自定义的环境配置文件)

3. 配置git用户环境变量文件,设置PATH(如果不设置好用户的PATH,运行git命令将提示"command not found")。

输入如下命令:

cd /home/git(进入用户git的主目录)
mkdir .ssh
echo PATH=/mnt/disk1/.optware/bin:/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin >> .ssh/environment
chown -R git.git .ssh(更改.ssh目录及其中文件的owner为用户git)
chmod 700 .ssh(更改.ssh目录的权限)
chmod 600 .ssh/environment

4. 创建git项目的存储目录。输入命令

mkdir -m 777 /mnt/disk1/gits(创建目录gits来存放所有的git项目,权限777)

5. 重启sshd(见第一部分步骤8),然后用PuTTY以git用户登录,应该就能登上了。

四。测试

1.通过ssh以用户git登录,创建一个git项目testproj。输入命令

mkdir /mnt/disk1/gits/testproj.git(创建项目的目录)
cd /mnt/disk1/gits/testproj.git
git init --bare(初始化git仓库)

2. 在windows客户机上安装tortoiseGit和mysisgit并设置好,你就可以从服务器上clone项目testproj了。(具体操作不在本文讨论范围,请自行google之)

如果客户机是linux或mac,并且安装好了git,你可以直接输入命令

git clone git@192.168.1.100:/mnt/disk1/gits/testproj.git

回车后输入用户git的密码,就把testproj项目给clone下来了

五。其它

一开始我按照网上的很多教程root后,发现只有root用户能够通过ssh登录,其它用户都不能登录。经过几天在网上苦苦的搜寻,终于找到了原因和解决办法:ssh服务器在底层使用了sftp这个工具,这个工具有一个配置文件/etc/sftponly_config,这个配置文件里禁止了用户(在Buffalo LS-WVL的Web配置页面能看到的所有用户和组)的ssh登录,而且这个配置文件每次ssh服务器启动时都会重新生成,所以你改这个配置文件也没有用。
解决办法有两个:
1. 既然在Web配置页面能看到的所有用户和组(默认有用户admin,guest,组包括admin,guest,hdusers)都不能ssh登录,那么Web配置页面里看不到的用户和组,不就不受这个限制了吗。所以解决方法就是通过ssh以root登录,新建一个组git,然后再创建一个用户git,使其属于这个新建的组(创建用户时如果不指定其所属的组,就默认属于hdusers组,这个是配置文件/etc/sftponly_config里面禁止ssh登录的),这样这个用户git就可以登录了。(具体操作见上文第三部分步骤1)
2. 第二个解决方法就是想办法修改这个配置文件/etc/sftponly_config。打开ssh服务器的启动脚本/etc/init.d/sshd.sh,你可以在启动ssh服务器的代码前找到这样一行“nas_configgen -c sftp”,就是这行代码重新生成了配置文件/etc/sftponly_config,只要在这一行后面再加一行代码,把sftponly_config改一改,把所有的"allowssh no"全部改成"allowssh yes",问题不就解决了吗。
(事实上这是我最开始找到的办法,但是由于操作比较复杂,而且有一定的安全隐患,所以还是建议使用第一个解决方法)

用vi来编辑/etc/init.d/sshd.sh,输入以下命令

vi /etc/init.d/sshd.sh

移动光标,在sshd_start()方法中找到“nas_configgen -c sftp”这一行,将光标移至行末,按a键,然后在这行之后插入一行:

sed -i 's/allowssh no/allowssh yes/g' /etc/sftponly_config

按ESC键,输入":wq"(双引号中间的3个字母)然后回车,这就保存退出了。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值