【Linux网络】ssh服务与配置,实现安全的密钥对免密登录 ...

打印 上一主题 下一主题

主题 578|帖子 578|积分 1734

目录

一、SSH基础
1、什么是ssh服务器
2、对比一下ssh协议与telnet协议
3、常见的底层为ssh协议的软件:
4、拓展
二、SSH软件学习
1、ssh服务软件学习 
2、sshd公钥传输的原理:
3、ssh下令学习:
4、学习解读sshd服务配置文件:
三、ssh服务的应用
1、利用密钥对免暗码登录
第一步:在客户端自己生成一对密钥(利用下令ssh-keygen)
第二步:将公钥文件导入给服务器,检查自己会产生一个known_hosts文件,服务器对应用户的家目录的.ssh目录下也会产生一个authorized_keys文件。
第三步:验证是否免密:(这个是单向的,假如需要服务器也能连接客户端,那么还需要在服务器同样做设置)
 2、黑白名单设置
黑白名单的语法:
第一种:白名单
第二种: 黑名单


一、SSH基础

1、什么是ssh服务器

ssh是一种安全通道协议,主要用来实现长途登录、数据传输等;ssh协议对通信双方的数据传输举行加密处理处罚,此中包罗用户登录时输入的用户口令,ssh为创建在应用层和传输层基础上的安全协议。
2、对比一下ssh协议与telnet协议

telnet协议:是明文的,端口号是tcp的23端口;
ssh协议:数据传输是加密的,可以防止信息泄漏;数据传输是压缩的,可以提高传输的速度;端口是tcp的22端口;
SSH(Secure Shell)现在较可靠,是专为长途登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止长途管理过程中的信息泄漏问题,透过SSH可以对全部传输的数据举行加密,也能够防止DNS诱骗和IP诱骗。
3、常见的底层为ssh协议的软件:

  1. Linux客户端: ssh, scp, sftp,slogin
  2. Windows客户端:xshell, MobaXterm,putty, securecrt
  3. OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。
  4. Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。
  5. 执行"systemctl start sshd"命令即可启动sshd 服务
复制代码
4、拓展

Windows上自带的长途连接工具是mstsc,是利用的tcp的3389端口,利用的RDP协议


 

二、SSH软件学习

1、ssh服务软件学习 

  1. 软件名:openssh(在centos7中为openssh-server)
  2. 服务名称:sshd
  3. 服务端主程序:/usr/sbin/sshd  
  4. 服务端配置文件:/etc/ssh/sshd_config ##ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)
  5. 客户端配置文件:/etc/ssh/ssh_config
复制代码
2、sshd公钥传输的原理:




  • 客户端发起连接请求
  • 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
  • 客户端生成密钥对
  • 客户端用自己的公钥异或会话ID(异或是算法,有很多种),计算出一个值Res,并用服务端的公钥加密
  • 客户端发送加密值到服务端,服务端用私钥解密,得到Res
  • 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
  • 终极:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的全部通讯都会被加密
原理是如许,但是在实际操纵中客户端把服务器的公钥记录在了~/.ssh/known_hosts文件中

   拓展:
  思索我们登录时怎么确认是不是我需要连接的服务器?(有个条件是我能碰的着服务器)
  起首在客户端连接服务器:

服务器连接自己试试:

3、ssh下令学习:

  1. ssh命令的语法:ssh [选项] 用户名@服务器ip地址或域名
  2. 选项:
  3. -p 端口号:不加默认是22号端口,如果是端口被修改了,需要指定端口号;
  4. -l 用户名:这个和“用户名@”效果一样;
  5. -t 跳板机服务器ip地址:比如需要访问外网的时候,需要先过内外网服务器等等;
  6. -o 配置文件参数变量值:比如ssh 192.168.20.10 -o StrictHostKeyChecking=no (允许免密登录)
  7. ssh 还能直接跟上命令
  8. 如:
  9. ssh 192.168.91.101 hostname (显示远程服务器的主机名)
复制代码
4、学习解读sshd服务配置文件:

  1. [root@localhost /]#vim /etc/ssh/sshd_config
  2. 17 #Port 22  
  3. ##这是sshd服务监听的端口,为了安全起见,建议更改默认端口为一个五位数以上的端口号
  4. 18 #AddressFamily any
  5. 19 #ListenAddress 0.0.0.0 ##可以改为自己的自己的ip地址
  6. 20 #ListenAddress ::##用来设置sshd服务器绑定的IP地址
  7. 32 SyslogFacility AUTHPRIV  
  8. 33 #LogLevel INFO
  9. ##当有人使用 SSH 登入系统的时候,SSH 会记录信息,这个信息要记录的类型为AUTHPRIV,sshd 服务日志存放在:/var/log/secure。
  10. ##可以做日志分离优化
  11. ##LogLevel用来设定sshd日志消息的级别,与上面记录的等级息息相关
  12. 35 # Authentication:
  13. ##限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒
  14. 37 #LoginGraceTime 2m
  15. ##LoginGraceTime用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为妙
  16. 38 #PermitRootLogin yes
  17. ##PermitRootLogin用来设置能不能以root身份ssh登录,
  18. 40 #MaxAuthTries 6
  19. ##用来设置最大失败尝试登陆次数为6
  20. 41 #MaxSessions 10
  21. ##设置同一个连接最大会话
  22. 43 #PubkeyAuthentication yes
  23. ##基于key验证(生产中需要打开)
  24. 63 #PasswordAuthentication yes
  25. 64 #PermitEmptyPasswords no  ##是否允许空密码登录,no表示不允许,需要密码!!
  26. ##密码验证建议还是需要的!可以通过认证的秘钥来登陆,来减少密码交互。
  27. 65 PasswordAuthentication yes
  28. ##基于用户名和密码连接,默认为yes
  29. 96 UsePAM yes
  30. ##设置是否通过PAM验证,需要的
  31. 98 #AllowAgentForwarding yes  ##允许代理
  32. 99 #AllowTcpForwarding yes  ##允许tcp那个代理
  33. 100 #GatewayPorts no  
  34. ##设置是否允许远程客户端使用本地主机的端口转发功能,出于安全考虑,建议禁止
  35. 115 #UseDNS no
  36. ##UseDNS是否使用dns反向解析,建议关闭,内网改为no可以提高速度
  37. 这是可以添加的选项:
  38. #AllowUsers<用户名1> <用户名2> <用户名3> ...
  39. ##指定允许通过远程访问的用户,多个用户以空格隔开
  40. 比如:AllowUsers zhangsan@192.168.91.101  lisi
  41. ##默认拒绝所有
  42. ##允许所有的主机访问我的lisi用户
  43. ##只允许192.168.91.101上的所有用户访问本机的zhangsan用户
  44. #AllowGroups<组名1> <组名2> <组名3> ...
  45. ##指定允许通过远程访问的组,多个组以空格隔开。当多个用户需要通过ssh登录系统时,可将所有用户加入一个组中。
  46. #DenyUsers<用户名1> <用户名2> <用户名3> ...
  47. ##指定禁止通过远程访问的用户,多个用户以空格隔开
  48. 举例:DenyUsers  liwu
  49. #拒绝liwu被访问
  50. #DenyGroups<组名1> <组名2> <组名3> ...
  51. ##指定禁止通过远程访问的组,多个组以空格隔开。
复制代码

三、ssh服务的应用

1、利用密钥对免暗码登录

第一步:在客户端自己生成一对密钥(利用下令ssh-keygen)

  1. ##使用命令生成一对密钥
  2. [root@localhost .ssh]#ssh-keygen
  3. Generating public/private rsa key pair.
  4. Enter file in which to save the key (/root/.ssh/id_rsa): ##默认放在用户的家目录下的~/.ssh/下
  5. Enter passphrase (empty for no passphrase): ##对密钥文件加密,密码至少5个字符
  6. Enter same passphrase again: ##再次输入密码
  7. Your identification has been saved in /root/.ssh/id_rsa.
  8. Your public key has been saved in /root/.ssh/id_rsa.pub.
  9. The key fingerprint is:
  10. SHA256:VqCGTmM6KO1NlBm1NNuCUZYE7ZXsCrZedcKdDaS4kFQ root@localhost.localdomain
  11. The key's randomart image is:
  12. +---[RSA 2048]----+
  13. |    =BEo.o.      |
  14. |   . @oB+o.      |
  15. |    %.B+o..+     |
  16. | o *o+.o=.+ .    |
  17. |o +.oo.oSo       |
  18. |.. +. o.         |
  19. |  ....           |
  20. |    .            |
  21. |                 |
  22. +----[SHA256]-----+
  23. ##验证密钥对成功创建
  24. [root@localhost .ssh]#ls
  25. id_rsa  id_rsa.pub
复制代码

第二步:将公钥文件导入给服务器,检查自己会产生一个known_hosts文件,服务器对应用户的家目录的.ssh目录下也会产生一个authorized_keys文件。



第三步:验证是否免密:(这个是单向的,假如需要服务器也能连接客户端,那么还需要在服务器同样做设置)


 2、黑白名单设置

黑白名单的语法:

  1. #AllowUsers<用户名1> <用户名2> <用户名3> ...
  2. ##指定允许通过远程访问的用户,多个用户以空格隔开
  3. 比如:AllowUsers zhangsan@192.168.91.101  lisi
  4. ##默认拒绝所有
  5. ##允许所有的主机访问我的lisi用户
  6. ##只允许192.168.91.101上的所有用户访问本机的zhangsan用户
  7. #AllowGroups<组名1> <组名2> <组名3> ...
  8. ##指定允许通过远程访问的组,多个组以空格隔开。当多个用户需要通过ssh登录系统时,可将所有用户加入一个组中。
  9. #DenyUsers<用户名1> <用户名2> <用户名3> ...
  10. ##指定禁止通过远程访问的用户,多个用户以空格隔开
  11. 举例:DenyUsers  liwu
  12. #拒绝liwu被访问
  13. #DenyGroups<组名1> <组名2> <组名3> ...
  14. ##指定禁止通过远程访问的组,多个组以空格隔开。
复制代码
第一种:白名单

  1. [root@localhost ssh]#vim /etc/ssh/sshd_config
  2. #手动添加
  3. AllowUsers zhangsan@192.168.20.10
  4. ##表示只允许192.168.20.10主机上的任意用户能够连接zhangsan
  5. ##并且默认拒绝所有
复制代码

第二种: 黑名单

  1. ##服务器上添加黑名单
  2. [root@localhost .ssh]#vim /etc/ssh/sshd_config
  3.   2 DenyUsers xueyin@192.168.20.10
复制代码



   拓展:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!报错
  翻译为:提示你长途主机的身份已经修改了;
  体系之前连接过192.168.20.10,记录了它的公钥,现在换了一台主机ip也是这个,但是公钥与缓存差别等,以是ssh美意提示一下;
  解决思绪:根据生产环境需求,假如是安全的,那么删掉当地的密钥缓存(删除~/.ssh/known_hosts文件中的对应192.168.20.10的公钥)。
  



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦应逍遥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表