一、了解RSA
二、什么是SSH
三、SSH协议的内容
四、SSH协议的安全验证
五、SSH的应用
六、开始配置SSH服务器
1、首先确认系统已经安装了以下两个包
[root@localhost ~]# rpm -qa | grep "zlib-[0-9]"(zlib包至少为1.1.4版本)
[root@localhost ~]# rpm -qa | grep "openssl-[0-9]"(openssl包至少为0.9.6版本)
2、下载并安装openssh安装包
1)下载OpenSSH
(1)官方网:www.openssh.org
(2)下载当前最新版:OpenSSH 5.3/5.3p1
[root@localhost ~]# wget ftp://mirror.mcs.anl.gov/pub/openssh/portable/openssh-5.3p1.tar.gz
2)安装OpenSSH(具体看OpenSSH.tar.gz包中的INSTALL文件)
[root@localhost ~]# tar -zxvf openssh-5.3p1.tar.gz; cd openssh-5.3p1
[root@localhost openssh-5.3p1]# touch run.sh; chmod u+x run.sh
然后在run.sh文件中输入以下几行内容:
[root@localhost openssh-5.3p1]# ./run.sh && make && make install
[root@localhost openssh-5.3p1]# cp contrib/redhat/sshd.pam /etc/pam.d/sshd
注意:一定不要忘记拷贝sshd.pam到/etc/pam.d目录下,并改名为sshd,要不然用户就不能通过SSH服务器的 ”基于口令的安全验证” 方式,从而不能登录SSH服务器
[root@localhost ~]# echo "/usr/local/openssh/sbin/sshd &" >> /etc/rc.local
注意:安装完以后,把sshd服务启动加入到rc.local脚本中,从而实现系统时,自动启动该服务
[root@localhost openssh-5.3p1]# cp /usr/local/openssh/share/man/man1/* /usr/local/share/man/man1/
[root@localhost openssh-5.3p1]# cp /usr/local/openssh/share/man/man5/* /usr/local/share/man/man5/
[root@localhost openssh-5.3p1]# cp /usr/local/openssh/share/man/man8/* /usr/local/share/man/man8/
注意:把帮助文件拷贝到/usr/local/share/man/下面,已便用man命令查看帮助
[root@Mylinux ~]# useradd ruanxi; passwd ruanxi
[root@Mylinux ~]# useradd crsky; passwd crsky
[root@Mylinux ~]# groupadd SSHadmin
[root@Mylinux ~]# vi /etc/group
把用户ruanxi加入到组SSHadmin中,修改/etc/group中的内容:SSHadmin:x:503:ruanxi
注意:这里把用户加入SSHadmin组中的目的是:让ruanxi能够登录SSH服务器,而用户crsky没有加入到SSHadmin组中,也就无法登录SSH服务器了,因为一般系统管理员的人数不会很多,所以我们只让系统管理员有权登录SSH服务器,其他人员禁止登录,这样能让服务器更安全(具体还得配置sshd_config文件)
3)修改配置文件
(1)安装完openssh后,会生成以下几个配置文件
(注意:这些生成的配置文件具体要放在哪个位置?这是由 --sysconfigdir参数指定的)
moduli #ssh服务器的Diffie-Hellman密钥文件
ssh_config #ssh客户端配置文件
sshd_config #ssh服务器配置文件
ssh_host_dsa_key #ssh服务器dsa算法私钥
ssh_host_dsa_key.pub #ssh服务器dsa算法公钥
ssh_host_rsa_key #ssh服务器rsa算法私钥
ssh_host_rsa_key.pub #ssh服务器rsa算法公钥
(2)编辑ssh服务器配置文件(sshd_config)
[root@localhost ~]# vi /usr/local/openssh/ssh_config
#默认使用的监听端口: 22 ,将监听端口更改为其他值(最好是在1024以上的高位端口号) |
#指定sshd应当使用哪种地址族,any表示使用: IPv4或IPv6 |
#如果SSH服务器上安装了多个网卡或者配置多个IP地址时, 我们可以设置sshd只在其中 |
#禁止使用SSHv1协议, 因为其存在设计缺陷, 不安全 |
#主机私钥文件的位置 |
#设置日志消息通过哪个日志子系统(facility)发送,默认是AUTH |
#设置记录登录sshd的日志等级, INFO表示记录任何日志 |
#当使用者连接上SSH Sever之后, 会出现输入密码的画面 |
#不允许直接使用root账号来登录sshd服务器,增强系统的安全 |
#要求sshd在接受连接请求前对用户主目录和相关的配置文件进行宿主和权限检查 |
#指定每个连接最大允许的认证次数为6次 |
#指定每个网络连接允许打开会话的最大数目为10个 |
#允许公钥论证 |
#存放该用户可以用来登录的RSA/DSA公钥,即: SSH服务器用来验证用户密码的文件 |
#设置是否使用~/.ssh/rhosts或/etc/hosts.equiv并配合RSA算法进行安全验证,建议设置成"no"值,因为不安全 |
#在RhostsRSAAuthentication 或 HostbasedAuthentication过程中 |
#在RhostsRSAAuthentication 或 HostbasedAuthentication过程中 |
#允许使用基于密码的认证 |