ssh(secure shell) --加密远程登录管理服务器,加密的数据传输
一、SSH为SecureShell的缩写,由IETF的网络工作小组(NetworkWorkingGroup)所制定;SSH为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平台,都可运行SSH。

telnet --通过字符界面远程管理服务器(明文)
ssh/openssh --加密的远程管理,加密的数据传输(scp/winscp/sftp)

client(192.168.0.254)ssh<--->server(192.168.0.172)sshd(密钥对(公钥/私钥))
1、可以使用ssh协议远程加密管理服务器
2、使用SSH协议进行数据传输(scp)
二、 从 客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)
需要依靠 密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器用这种方式,你必须知道自己密匙的口令。
但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒

dsa
rsa --ssh默认的加密方式,非对称的公钥加密算法,安全,数据传输速度慢
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。

点击这里 点击这里 点击这里 点击这里 点击这里
保密级别 对称密钥长度(bit) RSA密钥长度(bit) ECC密钥长度(bit) 保密年限
80 80 1024 160 2010
112 112 2048 224 2030
128 128 3072 256 2040
192 192 7680 384 2080
256 256 15360 512 2120

# rpm -qa |grep ssh --默认情况下,LINUX发行版都预安装这个软件
openssh-server-4.3p2-36.el5 --服务端 sshd
openssh-askpass-4.3p2-36.el5 --图形的客户端
openssh-4.3p2-36.el5 --公共软件包
openssh-clients-4.3p2-36.el5 --字符的客户端ssh scp sftp

ssh远程登录的过程
1.sshd启动的时候会产生一个公钥,每个小时更新一次公钥
2.当客户端收到服务端公钥会版本协商(sshv1,sshv2)使用sshv1登录时不能登录ssh2 ,使用sshv2时可以登录ssh1,ssh2
3.版本协商完后,服务端会发公钥(/etc/ssh/ssh_host_ras.pub给客户端,这一步是没加密
4.客户端返回确认信息,把一个session_key通过公钥加密发给服务端
ssh的加密方式远程连接原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

ssh的配置文件 :
# ls /etc/ssh/ssh*_config -l
-rw-r--r-- 1 root root 1827 2009-06-23 /etc/ssh/ssh_config 客户端的配置文件
-rw------- 1 root root 3323 2009-06-23 /etc/ssh/sshd_config 服务端的配置文件

# cat /etc/ssh/sshd_config |grep -v '#'|grep -v ^$
Port 22 --监听端口
Protocol 2 --使用版本2
ListenAddress 0.0.0.0 --监听地址
LoginGraceTime 2m --登录超时时间
PermitRootLogin yes --允许root通过ssh登录
MaxAuthTries 6 --密码尝试6次
RSAAuthentication yes --支持ras加密
PubkeyAuthentication yes --是否支持密钥对验证
AuthorizedKeysFile .ssh/authorized_keys --服务端更新密钥对密钥对验证时,客服端公钥存储文件

PermitEmptyPasswords no --是否允许空密码登录
PasswordAuthentication yes --是否支持账号/密码登录方式
UseDNS no --禁用DNS反解
Subsystem sftp /usr/libexec/openssh/sftp-server --支持sftp
AllowUsers root 只允许root 可以远程
DenyUsers
AllowGroups

客户端的命令:
# rpm -ql openssh-clients-4.3p2-36.el5|grep bin
/usr/bin/scp --支持远程主机之间文件拷贝
scp -P 2222 /root/test.txt kiki@192.168.0.16:/tmp/test.txt
scp -P 2222 -r /root/ kiki@192.168.0.16:/tmp/test.txt
scp root@192.168.0.254:/etc/hosts /var/tmp --从0.254主机上下载一个文件
scp /etc/hosts root@192.168.0.254:/var/tmp --往0.254上传一个文件

/usr/bin/sftp --sftp的客户端
# /usr/bin/sftp -oport=2222 kiki@192.168.0.16

/usr/bin/ssh
# ssh -p 2222 kiki@192.168.0.16

/usr/bin/ssh-copy-id --拷贝公钥至远程主机对应的目录

ssh验证:
1.基于账号/密码的验证

服务端:私钥
客服端:公钥

2.基于密钥对的验证
服务端:公钥
客服端:私钥

client(192.168.0.254)<-->server(192.168.0.2)

a. 在客户端生成密钥对
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): --保存私钥的路径
Enter passphrase (empty for no passphrase): --给私钥加密(123456)
Enter same passphrase again: --确认密码
Your identification has been saved in /root/.ssh/id_rsa. --私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. --公钥
ccess control configuration prevents your request from being

u01-→ u01/.ssh/authorized_keys
b. 拷贝公钥至服务器,拷贝目标路径:(你想用哪个用户登录就拷贝哪个用户的家目录$HOME/.ssh/authorized_keys)
第一种方法(手工拷贝):
在服务器上的操作:
#useradd kiki
# sudo -u kiki mkdir /home/kiki/.ssh
# sudo -u kiki chmod 700 /home/kiki/.ssh

在客户端上上传公钥
# scp -P2222 /root/.ssh/id_rsa.pub kiki@192.168.0.17:~/.ssh/authorized_keys

第二种方法(使用工具自动完成):
# ssh-copy-id -i /root/.ssh/id_rsa.pub kiki2@192.168.0.17 --一条命令搞定

c. 测试密钥对的登录:
# ssh -p2222kiki@192.168.0.17
Address 192.168.0.16 maps to test, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Enter passphrase for key '/root/.ssh/id_rsa': --输入私钥的加密密码(123456)
Last login: Fri Aug 19 15:47:02 2011 from 192.168.0.222
[kiki@mail ~]$ --这样就不需要输入kiki用户的密码

d.在windows的客户端使用密钥对验证:
1、生成密钥对
2、上传
3、转换:
# ssh-keygen -i -f key_pub >> /root/.ssh/authorized_keys

sshd 访问次数限制

编译PAM的配置文件(tty终端)
# vim /etc/pam.d/login

#%PAM-1.0 
    auth      required  pam_tally2.so   deny=3  lock_time=300 even_deny_root root_unlock_time=10

auth [user_unknown=ignore success=ok ignoreignore=ignore default=bad] pam_securetty.so一定要写在第一行。或者是最前面

even_deny_root    也限制root用户; 
 
deny           设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户 
 
unlock_time        设定普通用户锁定后,多少时间后解锁,单位是秒; 
 
root_unlock_time      设定root用户锁定后,多少时间后解锁,单位是秒;

如果想限制远程登录,需要改SSHD文件(远程登录)
# vim /etc/pam.d/sshd

#%PAM-1.0 
• auth          required        pam_tally2.so        deny=3  unlock_time=300 even_deny_root root_unlock_time=10

ssh用户登录失败次数过多被锁定,手动解锁:
• 查看用户登录失败的次数
• 1. [root@node100 pam.d]# pam_tally2 --user redhat 
2. Login           Failures Latest failure     From 
3. redhat              7    07/16/12 15:18:22  tty1

确定用/lib64/security/pam_tally2.so模块
pam_tally2 --user kiosk ----查看登录失败次数
pam_tally2 -r -u kiosk ----登录次数为0即可登录

pam_tally -user kiosk -reset ----清空登录值
或:

faillog -u kiosk -r ----清空指定用户kiosk登录次数

ssh安装及配置详解相关推荐

  1. Nagios远程监控软件的安装与配置详解

    Nagios远程监控软件的安装与配置详解 作者:redhat_hu Nagios是一款功能强大的网络监视工具,它可以有效的监控windows.linux.unix主机状态以及路由器交换机的网络设置,打 ...

  2. Julia的安装与配置详解(包含在Ubuntu 18.04和Windows 10系统上Julia的安装)

    Julia的安装与配置详解((包含在Ubuntu 18.04和Windows 10系统上Julia的安装) Julia的安装 使用二进制文件安装Julia 在Ubuntu上安装Julia 在Windo ...

  3. gulp的安装和配置详解

    gulp的安装和配置详解 1.安装node.js 先下载一个node.js安装包. 下载完成后双击即可. 打开cmd,命令行输入node -v,回车输出nodejs版本号,表示安装成功. 命令行输入n ...

  4. node.js卸载、安装、配置详解

    node.js卸载.安装.配置详解 一. node.js卸载 二.下载安装 2.1 下载 2.2 安装 2.2.1 选择msi安装 2.2.2 选择zip安装 三.配置 3.1 环境变量配置 3.2 ...

  5. Gradle安装和配置详解

    Gradle安装和配置详解 gradle是基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,也提供了很多第三方插件.在Java Web项目中通常会用到 java.war. ...

  6. keepalived介绍、安装及配置详解

    文章目录 keepalived简介 keeplived和LVS关系 VRRP工作原理 keepalived体系结构及工作原理 keepalived安装 keepalived配置详解 keepalive ...

  7. Linux中Nginx安装与配置详解及常见问题

    3 Nginx安装 3.1 安装前的准备     1)准备 pcre-8.12.tar.gz.该文件为正则表达式库.让nginx支持rewrite需要安装这个库.     2) 准备 nginx-1. ...

  8. Tomcat安装及配置详解

    转载:http://www.ttlsa.com/tomcat/tomcat-install-and-configure/ 一,Tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用 ...

  9. 01 Redis安装、配置详解、数据备份与恢复

    缓存简介 简介 缓存是为了调节速度不一致的两个或者多个不同的物质的速度,在中间对速度访问较快的一方起到一个加速访问速度较慢的一方的作用,比如cpu的一级,二级缓存是为了保存cpu最近经常访问的数据,内 ...

最新文章

  1. IDEA设置运行tomcat即生成war包
  2. csgo国服文件转国际服务器,csgo国际服怎么转国服 csgo国际服转到国服方法介绍...
  3. python能做什么游戏ll-Python 应该怎么学?
  4. PHP之高性能I/O框架:Libevent(二)
  5. 物联网是“互联网+”的动力 智慧是核心
  6. (46)VHDL实现4位桶性形移位器
  7. 单片机加减法计算器_单片机简易加法计算器程序
  8. postman 使用
  9. 从零开始学C#——不再更新,直接进入高阶教程
  10. android强制权限,Android6.0动态权限,强制申请权限方法
  11. Jenkins自动化构建Gitee项目
  12. python通过文件头识别音频格式
  13. 从“西点军校法则”学管理
  14. RPL源路由的IPv6路由头[RFC6554译文]
  15. 商务办公软件应用与实践【1】
  16. SQL联合查询 join
  17. 【思想】《人生效率手册》
  18. 专科段《财务管理》课程复习资料(2)——多项选择题
  19. 英语中描写”人”的词语集萃
  20. SSD写入放大 / 主机写入量、对NAND写入量的意义与差别

热门文章

  1. css和jquery_带有CSS和jQuery的超级简单灯箱
  2. html调起苹果手机摄像头_HTML5 调用手机摄像头拍照
  3. 活动安排问题(贪心)
  4. 怎么使用混合图层?什么是混合图层?
  5. python3 字符串转日期,python3 字符串转日期
  6. 信我,面试TCP/IP经典问题就这些!
  7. 如何删除正在运行的dll文件
  8. Openstack云平台脚本部署之Ceph存储集群配置(十四)
  9. 原码、反码、补码都是有符号定点数的表示方法。
  10. 织梦仿站系列教程第二十一讲——封面页制作(四)