当前位置:   article > 正文

Debian10配置SSH服务_debian 密码验证是否开启

debian 密码验证是否开启

一,简介

SSH (Secure Shell)安全外壳协议,专门为远程登录会话和其他网络服务提供安全的一种安全协议,就比如我们常见的Telnet协议和ftp协议,它们都是使用明文传输的,数据很容易遭到监听,也很容易受到中间人攻击,而ssh是一项创建在应用层和传输层的一种安全协议,在进行数据传输时,可以对传输的数据包进行加密处理。

工作流程:

(1) 版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本
(2) 密钥和算法协商阶段,SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的算法
(3) 认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证
(4) 会话请求阶段, 认证通过后,客户端向服务器端发送会话请求
(5) 交互会话阶段 ,会话请求通过后,服务器端和客户端进行信息的交互

安全验证方式:

(1)基于口令的安全验证:经过账户和密码即可登录到目标主机
(2)基于密钥的安全验证:要先在本地生成“密钥对”后将公钥传送到服务端,进行一个匹配

安装:apt-get install ssh

默认端口:22

服务端主配置文件:/etc/ssh/sshd.conf

客服端主配置文件: /etc/ssh/ssh.conf

查看是否安装:server --status-all | grep ssh

所有配置文件解析放在最后

二,使用口令验证连接Xshell7

vim /etc/ssh/sshd.conf

端口改为2021

 

打开允许root用户登录

启用密码验证(如果启用了密钥验证,则需关闭此项)

改完记得重启ssh服务哦!!!

  1. systemctl enable sshd.conf //开机自启ssh服务
  2. systemctl stop sshd.conf //停止ssh服务
  3. systemctl restart sshd.conf //重启ssh服务
  4. systemctl status sshd.conf //查看ssh服务状态

 

 

输入密码之后就能登录上去了

 三,密钥安全认证的使用

1.安装SSH,工作端口监听在19210

这里看了下我的进程里多了个6010,是因为我们使用了Xshell连接而导致的。

 把这条注释掉就好了,记得修改过配置文件后一点要重启服务!!!

我们退出Xshell后就没有6010这条进程了

2.经允许192.168.31.219这个网络进行ssh访问,其余所有的主机的请求都应该拒绝

通过修改/etc/hosts.allow和/etc/hosts.deny两个配置文件远程限制某个IP和某段IP地址允许或拒绝访问Linux SSH、FTP、telnet等服务,其中/etc/hosts.allow表示允许访问的IP,/etc/hosts.deny表示拒绝访问的IP,要记住hosts.deny这个文件的优先级高于hosts.allow。

在文件最下方添加这两条即可。

那我们来试试使用192.168.31.251这个ip能否进行访问, 是在同一网段的机器。

3.只允许用户user01用户使用秘钥免密码登录,其他用户拒绝登录(包括root用户)

useradd -m user01                //创建一个user01用户及其用户家目录

 vim /etc/ssh/sshd.conf

将 PasswordAuthentication yes和PermitRootLogin yes 注释点

 将这两条的注释取消掉

增加这一条

使用

 两台机器都使用ssh-keygen -t rsa 生成密钥,都直接回车就行

使用ssh user01@192.168.31.211 -p 19210进行连接

四.配置文件解析

/etc/ssh/sshd_config

  1. # 常用
  2. Port 22 # 端口号
  3. AddressFamily any # 指定使用哪种地址协议(默认:any、仅IPv4:IPv4、仅IPv6:IPv6
  4. ListenAddress 0.0.0.0 # 监听地址(0.0.0.0 表示所有地址)
  5. ListenAddress :: # 监听地址(IPv6 地址)
  6. Protocol 2 # 指定 SSH 的协议版本,12(如需同时支持两者,只需使用逗号分隔,如:12
  7. LogLevel INFO # 日志等级(QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3
  8. UserDNS no # 禁止DNS反向解析
  9. # 用户相关
  10. PermitRootLogin no # 禁止root用户登录
  11. PermitEmptyPasswords no # 禁止空密码用户登录
  12. LoginGraceTime 2m # 登录验证时间为2分钟
  13. MaxAuthTries 6 # 最大重试次数6
  14. AllowUsers steven # 只允许 steven 用户登录
  15. DenyUsers steven # 不允许登录用户 steven
  16. # 验证
  17. PasswordAuthentication yes # 启用密码验证(如配置密钥登录,则需关闭此项)
  18. PubkeyAuthentication yes # 启用密匙验证
  19. RSAAuthentication yes # 使用 RSA 算法进行安全验证
  20. AuthorizedKeysFile .ssh/authorized_keys # 指定公钥数据库文件(用于密钥登陆)

/etc/ssh/ssh_config

  1. Host * # 有效的主机(多个主机可用空格隔, “*” 表示所有)
  2. ForwardAgent no # 连接是否经过代理验证(如果是)转发给远程计算机
  3. ForwardX11 no # 连接受否被自动重定向到安全的通道和显示集
  4. RhostsRSAAuthentication no # 不使用 RSA 算法基于 rhosts 的安全验证(仅 Version 1 版本使用)
  5. RSAAuthentication yes # 使用 RSA 算法进行安全验证
  6. PasswordAuthentication yes # 使用口令验证
  7. HostbasedAuthentication no # 与 RhostsRSAAuthentication 类似(Version2 使用)。
  8. GSSAPIAuthentication no # 是否允许使用基于 GSSAPI 的用户认证(默认值为 ”yes”,仅用于 Version2)
  9. BatchMode no # 如为 “yes“,passphrase/password(交互式输入口令)的提示将被禁止
  10. CheckHostIP yes # 设置 SSH 是否检查看连接到服务器的主机的 IP 地址以防止 DNS 欺骗(建议设置为 “yes“)
  11. AddressFamily any # 指定使用哪种地址协议(默认:any、仅IPv4:IPv4、仅IPv6:IPv6)
  12. ConnectTimeout 0 # 设置连接超时时间
  13. StrictHostKeyChecking ask # 如果设置为 ”yes“,则不会自动把计算机的密钥加入 ”HOME/.ssh/known_hosts" 文件,并且以一旦计算机的密钥发生了变化,就拒绝连接
  14. IdentityFile ~/.ssh/identity # 设置从哪个文件读取用户的 RSA 安全验证标识
  15. IdentityFile ~/.ssh/id_rsa
  16. IdentityFile ~/.ssh/id_dsa
  17. IdentityFile ~/.ssh/id_ecdsa
  18. IdentityFile ~/.ssh/id_ed25519
  19. Port 22 # 设置端口号
  20. Protocol 2 # 指定 SSH 的协议版本,1 或 2(如需同时支持两者,只需使用逗号分隔,如:1,2)
  21. Cipher 3des # 设置加密用的密码
  22. Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc # 指定 Version2 使用的加密算法(多个算法之间使用逗号分隔)
  23. MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160 # 制定允许在 Version2 中使用哪些消息摘要算法来进行数据校验

/etc/hosts.allow

    /etc/hosts.allow
sshd:10.1.82.18         //允许10.1.82.18这个网络能访问ssh服务
#sshd:10.1.82.*            //允许10.1.82.*这个网段能访问ssh服务
#in.telnetd:10.1.82.18    //允许10.1.82.18这个ip能通过Telnet服务访问
#in.Telnetd:10.1.82.*    //允许10.1.82.*这个网段能通过Telnet服务访问
#all:10.1.82.18           //允许这个ip地址能通过任何服务器远程登录到linux服务器
#all:10.1.82.*            //类似

/etc/hosts.dent

  1. /etc/hosts.deny
  2. sshd:all 禁止所有ip不能通过ssh登录linux服务器
  3. #in.telnet:all //禁止所有ip不能通过telnet登录linux服务器
  4. #allall //禁止所有ip不能通过任何服务登录linux服务器

 其实还有好多可以写的,但孩子我实在卷不动了实在是想睡觉了,就这样吧。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/197140
推荐阅读
相关标签
  

闽ICP备14008679号