一. 先安装SVN
二.SVN跟Apache整合
1.新建一个SVN版本库
#cd /var/www/ #mkdir svn #cd svn #svnadmin create test1 //SVN安装完之后,创建SVN仓库的根目录为/var/www/svn,在里面新建一个版本库test1
2.Apache配置文件修改
#vi /usr/local/apache/conf/httpd.conf在里面加入如下内容
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn> DAV svn SVNParentPath /var/www/svn SVNListParentPath on Order deny,allow Allow from all </Location>
3.SVN配置文件修改
#cd test1 #vi config/authz加入以下两行
[/] harry = rw
#vi config/passwd
harry = harryssecret //将这行前面的#去掉
#vi config/svnserve.conf
将以下几行前面的#去掉
anon-access = read auth-access = write password-db = passwd authz-db = authz
三.redmine中SVN的配置
登录redmine后台,管理-》项目-》选择某个项目-》选择版本库选项卡。在SCM中选择Subversion,填入URL,填入登录名和密码(登录名和密码在此例中可以填写为,用户名:harry,密码harrayssecret)。然后在前台查看这个项目,会有版本库菜单,点击即可显示此项目对应的版本库信息。
以上的配置仅限于http的URL,如果你的SVN服务器搭建的是https的,还需要做如下操作。# vi /usr/local/redmine //进入你放redmine的文件夹 #svn ls --config-dir webserverRedmine --xml https://XX.XX.XXX.XXX/test1/
这时候会要求你输入用户名密码,输入正确的用户名密码,是否永久保存ssl凭证,确认。此时会在redmine所在文件夹下生成webserverRedmine目录,目录内容为该SVN的ssl凭证。
修改/usr/local/redmine/lib/redmine/scm/adapters/文件夹下subversion_adapter.rb的内容。
找到:
def credentials_string str = '' str << " --username #{shell_quote(@login)}" unless @login.blank? str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank? str << " --no-auth-cache --non-interactive " str end
将其修改为:
def credentials_string str = '' str << " --username #{shell_quote(@login)}" unless @login.blank? str << " --password #{shell_quote(@password)}" unless @login.blank? || @password.blank? str << " --trust-server-cert --no-auth-cache --non-interactive --config-dir /usr/local/redmine/ webserverRedmine”//(注意:路径最后的文件夹不要加斜杠) str end
然后重启apache,版本库就可以访问了。//同时需要注意webserverRedmine文件夹的权限哦
1. 查看sshd的版本
root # rpm -qf /usr/sbin/sshd openssh-server-4.3p2-82.el5 root # rpm -qi openssh-server-4.3p2-82.el5 Name : openssh-server Relocations: (not relocatable) Version : 4.3p2 Vendor: Red Hat, Inc. Release : 82.el5 Build Date: Wed 04 Jan 2012 09:42:39 PM CST Install Date: Mon 25 Mar 2013 10:02:23 AM CST Build Host: hs20-bc2-3.build.redhat.com Group : System Environment/Daemons Source RPM: openssh-4.3p2-82.el5.src.rpm Size : 491029 License: BSD Signature : DSA/SHA1, Thu 05 Jan 2012 11:55:31 PM CST, Key ID 5326810137017186 Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> URL : http://www.openssh.com/portable.html Summary : The OpenSSH server daemon Description : OpenSSH is a free version of SSH (Secure SHell), a program for logging into and executing commands on a remote machine. This package contains the secure shell daemon (sshd). The sshd daemon allows SSH clients to securely connect to your SSH server. You also need to have the openssh package installed.
2. ssh的协议层次结构
from: http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_12-4/124_ssh.html
SSH is organized as three protocols that typically run on top of TCP::
- Transport Layer Protocol: Provides server authentication, data confidentiality, and data integrity with forward secrecy (that is, if a key is compromised during one session, the knowledge does not affect the security of earlier sessions); the transport layer may optionally provide compression
- User Authentication Protocol: Authenticates the user to the server
- Connection Protocol: Multiplexes multiple logical communications channels over a single underlying SSH connection
http://stackoverflow.com/questions/16205240/which-side-will-initiate-the-version-negotiation-in-the-ssh-transport-layer-prot
结论是:协议没有规定,因为这个消息不是request-response。
jsch-0.1.20就存在着问题,先等待server端的版本信息,然后再发自己client端的。需要升级到比较新的版本解决这个问题。
4. 验证server端sshd版本的一个简单方法
root # telnet oc26 22 Trying 120.2.13.244... Connected to oc26. Escape character is '^]'. SSH-2.0-OpenSSH_4.35. 有时server端会基于安全的考虑,故意隐藏ssh的版本信息,下面是一些资料。
http://www.mail-archive.com/ssh@clinet.fi/msg06806.html
http://e-rezaei.persianblog.ir/post/2
http://0x80.org/blog/sshd-hide-version-patch/
http://www.unix.com/solaris/53391-how-hide-ssh-version.html (I just been audited and one the recommendations is to hide the SSH version or give fake information.)
http://www.linuxquestions.org/questions/slackware-14/how-to-hide-openssh-version-331399/
http://serverfault.com/questions/216801/prevent-ssh-from-advertising-its-version-number
http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html
6. ssh问题debug的一些方法
http://www.snailbook.com/faq/general-debugging.auto.html
Dos常用命令 一、基础命令 1 dir 无参数:查看当前所在目录的文件和文件夹。 /s:查看当前目录已经其所有子目录的文件和文件夹。 /a:查看包括隐含文件的所有文件。 /ah:只显示出隐含文件。 /w:以紧凑方式(一行显示5个文件)显示文件和文件夹。 /p:以分页方式(显示一页之后会自动暂停)显示。 |more:前面那个符号是“\”上面的那个,叫做重定向符号,就是把一个 命令的结果输出为另外一个命令的参数。more也是一个命令,dir /w |more 得到的结果和dir /w /p的结果是一样的。 其他的参数大家可以用:dir/?查看。 2 cd cd 目录名:进入特定的目录。如果看到有个目录显示为:abcdef ghi 就 输入:cdabcdef.ghi进入该目录。 cd\ 退回到根目录。 cd..退回到上一级目录。 3 md rd md 目录名:建立特定的文件夹。 (dos下面习惯叫目录,win下面习惯叫文 件夹。呵呵!) rd 目录名:删除特定的文件夹。 4 cls 清除屏幕。 5 copy copy 路径\文件名 路径\文件名 :把一个文件拷贝到另一个地方。 6 move move 路径\文件名 路径\文件名 :把一个文件移动(就是剪切+复制)到另 一个地方。 7 del del 文件名:删除一个文件。 del *.*:删除当前文件夹下所有文件。 del不能删除文件夹。 8 deltree 删除文件夹和它下面的所有子文件夹还有文件,厉害。。。不要乱用。 9 format format x: :x代表盘符,格式化一个分区。在dos下是用fat文件系统格式 化的,在windows2000安装的时候会问你要不要转换为ntfs。 10 type type 文本文件名:显示出文本文件的内容。 11 edit 其实这是个小程序,编辑文本文件用的。 12 ren ren 旧文件名 新文件名:改文件名。 二、关于网络的常用命令 1 ping ping 主机ip或名字:向目标主机发送4个icmp数据包,测试对方主机是否收 到并响应,一般常用于做普通网络是否通畅的测试。但是ping不同不代表网 络不通,有可能是目标主机装有防火墙并且阻止了icmp响应。 ping -t :不停的发送数据包。当然都很小,不能称作攻击。有些人自己写 了一些类似于ping命令的程序,不停的发送很大的数据包,以阻塞目标主机 的网络连接。 2 net 建议是用net /?获取具体帮助信息。实在是有很多参数,参数下面还有参 数。常用:net view \\主机 来看共享,net start/stop 服务 来启动和停 止服务,信使服务个人不太喜欢。 3 netstat netstat 主机:查看主机当前的tcp/ip连接状态,如端口的状态。 4 nbtstat nbtstat 主机:查看主机使用的NetBIOS name。 5 tracert tracert 主机:查看从你自己到目标逐机到底经过了那些路径。如: tracert www.ncie.gov.cn 然后等待。。。就会看到你经过的一个个路由节 点,一般大一点的路由器,如电信的主干路由,除了ip以外,都有英文标示 的。 6 pathping pathping 主机:类似tracert,但可以显示一些tracert不能显示出来的信 息。可以自己试试。 7 ftp 字符方式的ftp,我喜欢用;)不用装cuteftp了。 8 telnet 字符方式的远程登录程序,是网络人员极其爱用的远程登录程序。我最近常 用来调试邮件服务器。 9 ipconfig 非常有用的网络配置、排错。。。命令。 不加参数显示当前机器的网络接口状态。 /all 先是详细的信息。 /release 释放当前ip。 /renew 重新申请ip。 /flushdns 刷新dns缓存。 /registerdns 重新栽dns服务器上注册自己。 。。。。。。 10 arp 操作当前的arp缓存。 -a 显示arp缓存。 -d 删除一条缓存纪录。 -s 田家一条缓存纪录。 11 nslookup 排除dns错误的利器。是一个交互的工具。使用之前请先努力弄清楚dns的作用以及dns的工作原理。 xcopy是一个外部命令,也就是说,是一个小程序,有的时候会发现软盘上没有,硬盘上也没有。。。昏倒。。。当然勇气来使比copy好用,我喜欢加/e参数。 smartdrv.exe 加载磁盘缓存,参数是缓存的大小,单位是kb。 如:smartdrv 32768 就是加载32M的缓存。 缓存的作用在你安装WIN2K的时候非常明显!不加缓存装WIN2K PRO要3小时左右,加载8M缓存后,只要30分钟。 原理是在内存中划分出一块区域,在安装期间不断地把硬盘上的数据读取到那块缓存区域中,充分利用了内存。 AT和任务计划作用一样。 以下是使用方法,可以通过在命令提示符下面输入:AT /?获得帮助。 AT 命令安排在特定日期和时间运行命令和程序。 要使用 AT 命令,计划服务必须已在运行中。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]] AT [\\computername] time [/INTERACTIVE] [ /EVERY:date[,...] | /NEXT:date[,...]] "command" \\computername 指定远程计算机。 如果省略这个参数,会计划在本地计算机上运行命令。 \\127.0.0.1代表本机。和不加这个参数意思一样。 id 指定给已计划命令的识别号。 用来识别任务,比如你要添加好几个任务,ID=1就代表第一个喽! /delete 删除某个已计划的命令。如果省略 id, 计算机上所有已计划的命令都会被删除。 /yes 不需要进一步确认时,跟删除所有作业 的命令一起使用。 time 指定运行命令的时间。 /interactive 允许作业在运行时,与当时登录的用户 桌面进行交互。 /every:date[,...] 每个月或每个星期在指定的日期运行命令。 如果省略日期,则默认为在每月的本日运行。 /next:date[,...] 指定在下一个指定日期(如,下周四)运行命令。 如果省略日期,则默认为在每月的本日运行。 "command" 准备运行的 Windows NT 命令或批处理程序。