本文共 1666 字,大约阅读时间需要 5 分钟。
SSH(Secure Shell) 实现了与telent服务类似的远程登录功能,ssh协议在网络中使用密文传输数据,SSH服务器中还支持使用scp和sftp等客户端程序进行远程主机的文件复制 SSH协议提供两种用户认证方式: 基于口令的安全认证 与telnet类似,提供正确的用户口令后可以远程登录服务器 基于密钥的安全认证 使用公钥和私钥对的方式对用户进行认证 对称密钥:服务器和客户端使用同样的密钥加密解密 加密和解密的速度很快。 非对称密钥: 一般用于身份验证,安全性高,但加密解密速度慢 1.双方交换公钥 2.随机生成对称密钥,然后用对方的公钥加密后发给对方 3,对方用私钥解密得到对称密钥 4,以后对方所传输的所有数据均使用这个对称密钥加密和解密 openssh 是ssh协议的免费实现版本。他的进程是sshd。配置文件放在/etc/ssh中,服务器配置文件是/etc/ssh/ssd_config 客户机配置文件是/etc/ssh/ssh_config 客户机登录ssh服务器后,会在客户机的家目录生成.ssh目录,其中know_hosts保存服务器的公钥。 在ssh客户端生成用户的公钥和私钥对 使用ssh-keygen命令生成密钥对:$ssh-keygen -t rsa(rsa是著名的非对称密钥算法) 公钥和私钥文件 ssh-keygen命令将在.ssh目录中生成公钥和私钥文件 id_rsa是私钥文件,内容需要保密 id_rsa.pub是公钥文件,可以发布到ssh服务器中。 复制公钥文件: 将客户端中的用户公钥文件复制到ssh服务器中([staid@staid ~]$ scp /home/staid/.ssh/id_rsa.pub root@192.168.0.2:/root): 将公钥内容追加到authorized_keys文件(没有authorized_keys的话,创建authorized_keys文件): authorized_keys文件保存在ssh服务器中用户目录的.ssh子目录中 authorized_keys用于保存所有允许以当前用户身份登录的ssh客户端用户的公钥内容 使用>>重定向符将用户公钥追加到authorized_keys文件中 cat id_rsa.pub>>~/.ssh/authorized_keys ssh 192.168.1.2 的意思是用当前用户的名字登录服务器。 TCP Wrappers(包裹起来):只要应用基于tcp协议的,用户访问tcp应用的话,先经过TCP Wrappers过滤一遍。 设置只有两个文件:/etc/hosts.deny 和/etc/hosts.allow 守护进程就是tcpd, 包:tcp_wrappers 此处白名单优先于黑名单,就是说白名单也有,黑名单也有,那么就是白名单生效 文件格式:<服务程序列表>:<客户端地址列表>[:动作] 文件中每行为一个设置记录 服务程序列表字段的表示: ALL代表所有的服务程序 单个服务的名称 ,例如:in.telnetd代表telnet服务器进程(因为他属于超级管理程序的后台服务器部分,所以得用in.的样子,而不是独立进程),vsftpd代表vsftpd服务器程序 多个服务程序名称可以组成列表,中间用逗号隔开。例如:in.telnetd,vsftpd 客户机地址列表:字段的表示: ALL代表所有的客户机地址 LOCAL代表本机地址 KNOW代表可解析的域名 UNKNOW代表不可解析的域名 以句点.可是的域名代表该域名下的所有主机,例如:.test.com代表test.com域下的所有主机 对某个子网中的所有主机使用 子网/掩码 的形式表示 对于网络中的某个主机可直接用ip地址表示 动作用allow代表允许,deny是拒绝。
本文转自guoli0813 51CTO博客,原文链接:http://blog.51cto.com/guoli0813/359680,如需转载请自行联系原作者