七、ssh服务及免密登陆

ssh是一种网络协议,用于计算机之间的加密登录,可以有效防止远程管理过程中的信息泄露问题。刚开始学习时都没搞清楚哪个是服务端和客户端??? 其实本地想要连接远程主机的叫客户端,被连接的这个远程主机就是服务端

在本篇文章中,我的客户端是192.168.239.141服务端是192.168.239.138

SSH服务器和客户端的工作流程

在这里插入图片描述
(1) SSH客户端发出请求连接SSH服务器
(2) SSH服务器检查SSH客户端数据包和IP地址
(3) SSH服务器通过安全验证后发送密钥给SSH客户端
(4) 本地sshd守护进程将密钥送回远程SSH服务器
至此,SSH客户端和远程SSH服务建立了一个加密会话

  1. 连接前,ifconfig 查看客户端服务端ip地址
    在这里插入图片描述
    在这里插入图片描述

2.ping 192.168.239.138 查看ip是否连通
在这里插入图片描述

连接方式

   ssh user@ip         ## 文本模式的链接
   ssh ip            ## 本地用户名和远程用户名一致时
   ssh -X user@ip        ## 可以在链接成功后开机图形
   ssh -p 2222 user@ip      ## 使用2222端口登陆
  在这里插入图片描述

  远程复制
   scp file root@ip:dir       ## 上传
   scp root@ip:file dir       ## 下载

两种登陆方式

  一.口令登陆:第一次登录陌生主机时要建立认证文件,询问是否建立,输入yes,再次链接该主机时,因生成~/.ssh/known_hosts文件,所以直接提示输入密码
在这里插入图片描述

   2.密钥登陆(免密码):用户将自己的公钥储存在远程主机上,登陆时,远程主机向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先存储的公钥进行解密,成功则证明用户可信,直接允许免密码登陆
具体操作:(服务端和客户端均可生成密钥,只需要将id_rsa.pub这个锁(公钥)挂在远程主机上就可以)

法一:服务端(远程主机)上创建密钥
1. 【客户端141】 # ssh -X [email protected].138     ## 141 >> 138 客户端先访问远程主机建立连接
在这里插入图片描述
2. 【服务端138】 # ssh-keygen          ##远程主机上创建密钥对 一路回车,最后在远程主机的/root/.ssh文件夹中生成id_rsa, id_rsa.pub私钥和公钥
在这里插入图片描述
在这里插入图片描述

3.【服务端138】 # ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected].138         ##挂锁(加密服务) ##yes >> passwd
在这里插入图片描述

4.【服务端138】# ls /root/.ssh                ## authorized_keys文件出现表示加密完成
在这里插入图片描述
5.【服务端138】 # scp /root/.ssh/id_rsa [email protected].141:/root/.ssh/        ##发钥匙,将id_rsa复制到客户机的.ssh文件夹中
在这里插入图片描述
在这里插入图片描述
6.【客户端141】 # ssh [email protected].138                      ##连接时直接登陆不需要密码认证
在这里插入图片描述

法二:客户机(本地)上创建密钥
1.【客户端141】 # ssh-keygen                        ##客户机生成密钥对
2.【客户端141】 # ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected].138   ##挂锁(加密服务) ##yes >> passwd
3.【客户端141】 # ssh [email protected].138                 ##连接时直接登陆不需要密码认证

注意:法二少scp /root/.ssh/id_rsa分发钥匙这一步,法二刚开始是否先访问远程主机无所谓

安全配置

  配置文件/etc/sysconfig/sshd_config

78 PasswordAuthentication yes|no                    ##是否允许用户通过登陆系统的密码做sshd的认证
48 PermitRootLogin yes|no	                        ##是否允许root用户通过sshd服务的认证
52 Allowusers student westos	                    ##设定用户白名单,白名单出现默认不再名单中的用户不能使用sshd
53 Denyusers	westos		                        ##设定用户黑名单,黑名单出现默认不再名单中的用户可以使用sshd

在这里插入图片描述

服务管理

  systemctl status sshd                 ##查看ssh服务的状态
  systemctl stop sshd                 ##关闭ssh服务
  systemctl start sshd                 ##开启ssh服务
  systemctl restart sshd               ##重新启动ssh服务
  systemctl enable sshd               ##设定sshd服务开机启动
  systemctl disable sshd               ##设定sshd服务开机关闭
  systemctl list-units                ##列出当前系统服务的状态
  systemctl list-unit-files              ##列出服务的开机状态
  systemctl mask sshd              ##锁定ssh服务,不能启动服务,除非解锁
  systemctl unmask sshd             ##解锁ssh服务
  systemctl set-default multi-user.target      ##开机不开启图形
  systemctl set-default graphical.target     ##开机启动图形

添加sshd登陆信息

  vim /etc/motd           ##文件内容就是登陆后显示的信息

添加sshd登陆信息

  1.w              ##查看正在使用当前系统的用户
       -f ## 查看使用来源
       -i ## 显示IP
    /var/run/utmp
  2.last              ##查看使用过并退出的用户信息
    /var/log/wtmp
3.lastb               ##试图登陆但没成功的用户
    /var/log/btmp

猜你喜欢

转载自blog.csdn.net/qq_35197351/article/details/82972513