Linux sshd 服务器搭建管理

一、SSH服务

  1. 什么是ssh

专为远程登录和其他网络服务提供安全性的协议

能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形式在网络中传输数据

  1. shh服务认证类型
  1. 基于口令认证

知道服务器账号密码,在ssh中连接账号

  1. 基于秘钥认证

必须为用户创建一对秘钥,在shh中连接时,客户端会向发出请求,用客户端秘钥进行验证,服务器收到后,在用户目录下寻找公钥,对比,一致

  • SSH服务的安装

官方站点:http://www.openssh.com

服务名:sshd

服务端主程序:/usr/sbin/sshd

客户端程序:/usr/bin/ssh

服务端主配置配置文件:/etc/ssh/sshd_config

客户端配置文件:/etc/ssh/ssh_config

  • 配置openssh服务端

sshd服务的配置文件默认位于/etc/ssh/sshd_config

  1. Port 22   监听的端口(默认22),也可以使用多个Port,即重复使用 Port 这个配置项。

#例如想要开放sshd端口为 22和222,则添加如下内容

Port 22

Port 222

#然后重新启动sshd这样就好了。 建议大家修改 port number 为其它端口。防止别人暴力破解。

  1. ListenAddress  0.0.0.0   监听的IP地址(默认监听所有IP)

设置sshd服务器绑定的IP地址,0.0.0.0 表示侦听所有地址, 这个值可以写成本地IP地址也可以写成所有地址

  1. SyslogFacility AUTHPRIV 当有人使用 SSH 登入系统的时候,SSH 会记录信息,这个信息要记录的类型为AUTHPRIV。

sshd服务日志存放在: /var/log/secure

为什么sshd配置文件中没有指定日志,但日志却存放在了:/var/log/secure ?

# vim /etc/rsyslog.conf #查看

  1. LogLevel  INFO  日志记录的等级!INFO级别以上。
  2. UseDNS   no    禁用dns反向解析,一般来说,为了要判断客户端来源是正常合法的,因此会使用DNS去反查客户端的主机名,不过如果是在内网互连,设定为 no 会让联连接速度比较快。
  3. PermitRootLogin  no    禁止ROOT用户远程登录
  4. PermitEmptyPasswords  no   禁止密码为空的用户远程登录
  5. LoginGraceTime  2m  限制用户登录验证过程的时间(默认为2分钟),即在多久时间内没有成功连上 SSH server 就强迫断线!若无单位则默认时间为秒。可以根据实际情况来修改实际
  6. MaxAuthTries  6     限制用户登录验证过程的最大重试次数
  7. DenyUsers  zhangsan  lisi   拒绝XX用户远程登录系统,其他均允许
  8. AllowUsers  jerry  admin@61.23.24.25   允许jerry在任何何IP的主机上远程登录,允许admin只能在主机61.23.24.25登录 ,其他均拒绝(不要同时使用AllowUsers和DenyUsers配置)
  9. PasswordAuthentication   yes   是否启用密码验证
  10. PubkeyAuthentication   yes     是否启用密钥对验证
  11. AuthorizedKeysFile    .ssh/authorized_keys    指定保存各用户公钥内容的数据文件位置,默认保存用户公钥信息的文件位于(服务器某个用户宿主目录下的)
  12. PrintLastLog  yes    显示上次登入的信息,如上次登入的时间、地点等等,默认是yes
  13. PrintMotd  yes  登入后是否显示出一些信息,即打印出 /etc/motd这个文档的内容。

例如给sshd服务添加一些警告信息

修改/etc/motd

# cat /etc/motd

# echo '欢迎进入192.168.10.30服务器,注意:“禁止私自”使用“rm -rf”命令,如使用请联经理!请配合!'> /etc/motd

测试:连接ssh,显示结果

配置文件sshd_config修改后,重启sshd服务

#systemctl  restart  sshd

  • 使用SSH客户端程序
  1. 方式1: ssh 用户名@服务器地址

方式2: ssh -l 用户名  服务器地址

方式3: ssh  服务器地址(缺省时会尝试以当前的本地用户名进行登录)

  1. 使用scp命令远程复制文件/目录

方式1: scp 用户名@服务器地址:源文件 目标路径

方式2: scp 本地文件 用户名@服务器地址:目标路径

  1. 使用图形客户端软件xshell

安装lrzsz 可以在Linux 和 windows直接相互传文件,

rz命令从本地上传文件到服务器

sz命令件从服务器下载文件到本地

  • sshd服务防止暴力破解

方法1:配置安全的sshd服务

  1. 密码复杂
  2. 修改端口
  3. 不允许root登录,添加普通账号,授予root权限
  4. 不允许密码登录,用秘钥登录

方法2:秘钥认证sshd认证

  1. 创建秘钥对

ssh-keygen  -t  rsa

Id_rsa是私钥文件

Id_rsa.pub是公钥

  1. 公钥文件上传服务器

ssh-copy-id  -i  root@192.168.1.1 

输入密码

ll  -d  /root/.ssh

ll  /root/.ssh

  1. 客户端秘钥对验证

ssh  root@192.168.1.1

sudo  -i

whoami

Xshell使用密钥对验证连接远程主机192.168.1.1

将私钥文件拷贝到windows主机上,执行sz命令(id_rsa)由lrzsz软件包提供

在Xshell新建连接192.168.1.1,在身份验证选择 “Public key”,通过浏览按钮导入拷贝私钥

方法3:通过pam模块来防止暴力破解ssh

# vim /etc/pam.d/sshd

在第一行下面添加一行:

auth  required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=1200

#尝试登陆失败超过3次,普通用户600秒解锁,root用户1200秒解锁

手动解除锁定:

查看某一用户错误登陆次数:

#pam_tally2  --user  用户名

例如,查看zhangsan用户的错误登陆次数:

#pam_tally2  --user  zhangsan

清空某一用户错误登陆次数:

#pam_tally2  --user  用户名  --reset

例如,清空zhangsan用户的错误登陆次数,

#pam_tally2   --user  zhangsan  --reset

  • 在远程计算机上运行命令

输出重定向至本地文件:

#ssh  user@host  ‘command1 ; command2’ > log.local     //单引号

例如:ssh  root@192.168.36.128  ‘hostname;ifconfig’ > log.local

输出重定向至远程文件:

#ssh  user@host  ‘command1 ; command2 > log.remote’   //单引号

例如:ssh  root@192.168.36.128  ‘hostname;ifconfig > log.remote’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白xkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值