当前位置:   article > 正文

SSH服务详解

ssh

ssh服务的学习框架图为:

 

目录

一、什么是ssh服务?

1、ssh理解是一个协议,用来远程控制服务器的。

2、在默认状态下,SSH服务主要提供两个服务功能

3、使用什么软件实现ssh——远程登录( openssh)

3.1、OpenSSH是什么

3.2、sshd中d的含义

二、ssh搭建+配置+排错+命令

1、ssh的命令的使用

1.1、sftp是什么

1.2、scp是什么

2、ssh服务的文件配置

2.1、查看、修改ssh服务中的配置文件(配置文件详解)

3、查看sshd服务是否启动

3.1、 查看进程

3.2 看端口(需要知道端口号)

3.3  直接访问

3.4 看日志

4、故障排查

4.1、selinux是什么

4.2、关闭防火墙

三、ssh服务器加固

四、ssh服务远程登录流程


一、什么是ssh服务?

1、ssh是secure shell protocol的简写,是安全的sshll。由 IETF 网络工作小组(Network Working Group )制定。

2、解决了什么问题:在进行数据传输之前,ssh先对联机数据包通过加密技术进行加密处理,加密之后在进行数据传输,确保了传递过程中的数据安全。

1、ssh理解是一个协议,用来远程控制服务器的。

      使用在linux/unix系统里,远程控制服务器。

      remote login program --远程登录程序

      对数据进行加密传输的服务,主要用在远程登录。

      ssh协议是应用层协议,支持的是ssh协议。

      分层:应用层、传输层、网络层、数据链路层、物理层。

      在计算机网络中属于应用层。

因为传统的网络服务程序。如ftp、pop和Telnet在本质上是不安全的,因为它们在网络上用明文传送口令和数据,有心之人会很容易的截取到这些口令和数据。同时,这些服务的安全验证方式是有一定的弱点的,就是很容易受到“中间人”的攻击。所谓的“中间人”的攻击方式,就是"中间人"冒充真正的服务器啦接收你要传给服务器的数据,然后再冒充你把数据传送给真正的服务器。服务器和你之间的数据传送就会被“中间人”“动手脚”修改了一下信息,这样就会出现很严重的问题。

而SSH是专程为远程登录会话和其他网络服务提供的安全性协议。利用SSH协议可以很有效的防止远程登录管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件。

2、在默认状态下,SSH服务主要提供两个服务功能

      n 一个是提供类似于Telnet远程联机服务器的服务,即上面提到的ssh服务。

      n 一个是类似于FTP服务的sftp-server,借助SSH协议来传输数据的,提供更加安全的SFTP服务(vsftp、proftp)。

ssh服务主要是在HP-UX、LINUX 、AIX、UNIX、LRIX、SCO、Mac OS X等系统上都有,但是Windows上没有。

ssh服务连接使用的是22端口,基于tcp协议。

3、使用什么软件实现ssh——远程登录( openssh)

ssh是允许root用户来登录的,Linux上是允许的(如果想要不允许的话:可以修改文件配置

vim /etc/ssh/sshd_config);而在Ubuntu上面是不允许的,但是也可以进行设置)

3.1、OpenSSH是什么

openssh是使用ssh协议进行远程登录的首要连接工具。它对所有通道进行加密,以消除窃听、连接劫持和其他攻击的。此外,OpenSSH是提供了大量的安全隧道功能,几种身份验证方法和复杂的配置选项。是开源免费的,官方学习网站为:http://www.openssh.com/

centos7/8/6安装好系统,是默认安装openssh的,在redhat里也是默认安装的。Ubuntu里有server版本,没有安装的。

可以通过查看进程查看sshd服务和openssh是否已经启动:

  1. root@nginx-kafka01 ~]# ps -aux|grep sshd
  2. root 6633 0.0 0.4 112872 4300 ? Ss 09:25 0:00 /usr/sbin/sshd -D
  3. root 7850 0.0 0.5 157268 5908 ? Ss 09:25 0:00 sshd: root@pts/0
  4. root 7906 0.0 0.0 112824 984 pts/0 R+ 09:43 0:00 grep --color=auto sshd
  5. [root@nginx-kafka01 ~]# netstat -anpult|grep sshd
  6. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6633/sshd
  7. tcp 0 36 192.168.2.152:22 192.168.2.118:50743 ESTABLISHED 7850/sshd: root@pts
  8. [root@nginx-kafka01 system]# rpm -q openssh
  9. openssh-7.4p1-16.el7.x86_64
  10. [root@nginx-kafka01 system]# rpm -qa |grep openssh
  11. openssh-clients-7.4p1-16.el7.x86_64
  12. openssh-7.4p1-16.el7.x86_64
  13. openssh-server-7.4p1-16.el7.x86_64

3.2、sshd中d的含义

d表示守护进程:daemon。一直在内存里运行的程序,除非人为的停止。

ssh daemon :ssh

openssh 提供某些ssh的工具---客户端

openssh-client 客户端程序

openssh-server 服务器端程序

c/s架构的软件。

使用什么软件实现ssh:openssh(Linux中可以实现ssh服务,但是Windows中没有ssh服务):开源免费的。

扩展:

rpm是Linux里的一个软件管理的命令,在redhat/centos里使用没有使用oracle Linux

rpm -q 查询 query

rpm  -a  -all :所有

rpm -qa 查询本机已经安装的所有的软件。

二、ssh搭建+配置+排错+命令

1、ssh的命令的使用

 第一次连接登录需要你输入yes,不是第一次就不需要:第一次登录相当于发送对方的公钥过来。将客户机上sshd守护进程的公钥复制到本地,存放在本地~/.ssh/known_hosts文件中,每行存放一台服务器的公钥,用来验证服务器的身份。

1、 只是进行登录

(1)这是第一次登录:

192.168.2.132登录到192.168.2.152

ssh相当于一个xshell服务。

①ssh 用户名@服务器地址(推荐使用)

  1. [root@nginx-kafka02 ~]# ssh root@192.168.2.152 ##连接到192.168.2.152
  2. The authenticity of host '192.168.2.152 (192.168.2.152)' can't be established.
  3. ECDSA key fingerprint is SHA256:+q5FKuWvEqBzdvqWS+7L3pGu5otwv/yepkY1j5iOaCY.
  4. ECDSA key fingerprint is MD5:d1:9e:bd:5f:49:49:37:d8:5d:c6:c3:f8:dd:10:c7:b8.
  5. Are you sure you want to continue connecting (yes/no)? y
  6. Please type 'yes' or 'no': yes
  7. Warning: Permanently added '192.168.2.152' (ECDSA) to the list of known hosts.
  8. root@192.168.2.152's password:
  9. Last failed login: Wed Jul 27 12:09:43 CST 2022 from 192.168.2.132 on ssh:notty
  10. There was 1 failed login attempt since the last successful login.
  11. Last login: Wed Jul 27 11:55:11 2022 from 192.168.2.118

②ssh  服务器地址(不指定登陆用户,默认会使用当前的用户名远程连接)

[daijun@manager161 ~]$ ssh 192.168.0.180

(2)不是第一次登录:192.168.2.152登录到192.168.2.132

③ ssh -l 用户名 服务器地址

  1. [root@localhost ssh]# ssh -l cali 192.168.1.173
  2. cali@192.168.1.173's password:
  3. Last login: Wed Jul 27 12:01:25 2022 from 192.168.1.101
  4. [cali@nginx-kafka01 ~]$ exit
  5. 登出

①ssh:远程登录

远程登录的命令

④ ssh -p   端口号 ip地址            # -p :port:指定端口号 

  1. [root@nginx-kafka01 ~]# ssh -p 22 root@192.168.2.132
  2. Last login: Fri Jul 29 16:12:45 2022 from 192.168.2.123

2、运行远程机器上的脚本或者命令

(1)在远程机机上创建文件夹。(mkdir)

  1. [root@manager161 .ssh]# ssh 192.168.0.180 mkdir /luogg{1..10}
  2. [root@manager161 .ssh]# ssh 192.168.0.180 sudo mkdir /danyh{1..10}

(2)在远程机上执行脚本文件

[root@manager161 .ssh]# ssh 192.168.0.180  sudo bash /lianxi/scan_lan_ip.sh

1.1、sftp是什么

sftp是基于ssh协议的ftp功能,底层使用的是ssh协议。提供的是文件的上传和下载(远程登录到另外一台机器上进行文件的上传和下载)

sftp 用户名@远程主机ip地址

  1. [root@nginx-kafka01 ssh]# sftp root@192.168.2.132
  2. root@192.168.2.132's password:
  3. Connected to 192.168.2.132.

进行文件的上传和下载操作:以下指令操作是在使用sftp文件操作之后执行的
pwd:是查看远程机上的所在路径

lpwd:是查看本机所在路径

!ls:是查看本机所在路径里面的文件

cd:是切换远程机的路径

lcd:是切换本机的路径

get + 文件:下载

put + 文件:上传

put -r +文件夹 上传文件夹

exit 退出

  1. sftp> pwd 查看远程机上所在路径
  2. Remote working directory: /root
  3. sftp> lpwd 查看本机所在路径
  4. Local working directory: /etc/ssh
  5. sftp> !ls 查看本机所在路径里面的文件
  6. boot sshd_config ssh_host_ecdsa_key.pub ssh_host_rsa_key
  7. moduli sshd_config.bak ssh_host_ed25519_key ssh_host_rsa_key.pub
  8. ssh_config ssh_host_ecdsa_key ssh_host_ed25519_key.pub
  9. sftp> cd
  10. sftp> lcd
  11. sftp> get +文件:下载
  12. sftp> put +文件:上传
  13. sftp> put -r +文件夹 上传文件夹
  14. sftp> put -r grub2 :上传grub2文件夹
  15. sftp> exit 退出

1.2、scp是什么

scp是远程拷贝 ,底层是通过ssh协议远程连接到其他机器上,复制文件。

scp:s:ssh   cp:copy

 scp命令推送文件在linux服务器之间。

1、复制远程机上的文件到本机。 scp -r   用户名+远程机ip: 复制文件需要接-r选项

将192.168.2.132的root用户的/boot文件复制到当前用户/etc/ssh。就可以看到当前用户下的ssh文件里面就有boot文件。

  1. [root@nginx-kafka01 ssh]# scp -r root@192.168.2.132:/boot /etc/ssh
  2. 源 目的地
  3. root@192.168.2.132's password:
  4. Permission denied, please try again.
  5. root@192.168.2.132's password:
  6. [root@nginx-kafka01 ssh]# ls
  7. boot sshd_config ssh_host_ecdsa_key.pub ssh_host_rsa_key
  8. moduli sshd_config.bak ssh_host_ed25519_key ssh_host_rsa_key.pub
  9. ssh_config ssh_host_ecdsa_key ssh_host_ed25519_key.pub

2、在远程机上创建文件:

  1. [root@manager161 lianxi9]# scp mkdir.sh root@192.168.0.180:/root
  2. mkdir.sh 100% 42 10.9KB/s 00:00

3、复制本机上的文件到远程机上。

将/etc/passwd 复制到192.168.1.173机器上的cali用户的家目录下。

  1. [root@localhost ssh]# scp -r /etc/passwd cali@192.168.1.173:~
  2. cali@192.168.1.173's password:
  3. passwd 100% 1692 745.6KB/s 00:00

4、在远程机上执行脚本。

cat ctrl_mysql.sh   实现传递脚本到服务器,然后执行传递过去脚本

在远程机上创建文件夹的脚本。

  1. [root@manager161 lianxi9]# cat mkdir.sh 是具体需要做什么工作的脚本
  2. for i in {1..10}
  3. do
  4. mkdir -p feng$i
  5. done

在本机上编写脚本实现传递脚本到服务器,然后执行传递过去脚本。

  1. [root@manager161 lianxi9]# cat ctrl_mysql.sh 实现传递脚本到服务器,然后执行传递过去脚本
  2. for i in {1..100}
  3. do
  4. scp /lianxi9/mkdir.sh root@192.168.0.$i:/root
  5. ssh root@192.168.0.$i bash /root/mkdir.sh
  6. done

2、ssh服务的文件配置

ssh服务的配置文件存放在:/etc/ssh

配置文件:给进程传递参数的。

  1. [root@nameserver ssh]# cd /etc/ssh/
  2. sshd_config  --》服务器端的配置文件  server   --》进程:sshd 
  3. ssh_config --》ssh命令使用的配置文件 client  --》进程:ssh
  4. ssh_host_ecdsa_key.pub  --》ecdsa加密算法的公钥
  5. ssh_host_ecdsa_key    --》ecdsa加密算法的私钥

2.1、查看、修改ssh服务中的配置文件(配置文件详解)

1、查看配置文件:

#pam认证模块 --》配置路径/etc/pam.d 这个目录下面存放的是每个需要认证的服务的配置,文件名就是服务名

UseDNS yes #是否将客户端主机名解析为ip

#此过程不顺利的话,会非常的慢,会影响登陆认证的速度,可以将其设置为no

  1. [root@nginx-kafka01 etc]# vim /etc/ssh/sshd_config (修改文件,传递参数)
  2. Port 22 #修改默认监听端口(默认22端口)
  3. #AddressFamily any
  4. ListenAddress 0.0.0.0 ##表示可以连接的ip地址:0.0.0.0表示在本机上的任意ip都可以访问
  5. #ListenAddress ::
  6. HostKey /etc/ssh/ssh_host_rsa_key
  7. #HostKey /etc/ssh/ssh_host_dsa_key
  8. HostKey /etc/ssh/ssh_host_ecdsa_key
  9. HostKey /etc/ssh/ssh_host_ed25519_key
  10. # Ciphers and keying
  11. #RekeyLimit default none
  12. # Logging
  13. #SyslogFacility AUTH
  14. SyslogFacility AUTHPRIV
  15. #LogLevel INFO
  16. # Authentication:
  17. ........
  18. #LoginGraceTime 2m
  19. #设置为运行root用户登录:yes,no就是不允许用户使用root用户进行登录。
  20. PermitRootLogin yes ##允许root用户登陆,默认为yes
  21. #StrictModes yes
  22. #MaxAuthTries 6
  23. #MaxSessions 10
  24. #PubkeyAuthentication yes ##是否开启公钥认证
  25. #UsePAM yes #使用pam认证
  26. ....
  27. # To disable tunneled clear text passwords, change to no here!
  28. #PasswordAuthentication yes
  29. #PermitEmptyPasswords no
  30. PasswordAuthentication yes #允许密码验证登录
  31. #UseDNS yes #是否将客户端主机名解析为ip

sshd_config --->sshd服务端的进程

ssh_config ----》ssh客户端命令的配置文件

2、配置文件(/etc/ssh/sshd/config)里面的详解:

denyusers:禁止登录的用户

maxauth tries 6:表示最多能输6次密码。

端口号不能随意更改:因为端口号的范围是从0到65535(2^16次)。

 修改配置文件之后(永久修改),根据自己的需求进行修改,修改完成之后需要重启进程:(service sshd restart)

扩展:重启的过程就是kill之前的进程,然后重新启动一个新的进程。

3、重启sshd

三个方法选择其一:

  1. [root@nginx-kafka01 ssh]# service sshd restart
  2. [root@nginx-kafka01 ssh]#systemctl restart sshd
  3. [root@nginx-kafka01 ssh]#restart sshd. service

===扩展===

tail -f secure 盯着文件的末尾看。

  1. [root@nginx-kafka01 log]# grep "Failed password" secure 查看哪些登录失败的

lastlog:查看哪些登录的用户。

  1. [root@nginx-kafka01 ssh]# lastlog
  2. 用户名 端口 来自 最后登陆时间
  3. root pts/3 192.168.2.123729 16:12:45 +0800 2022
  4. bin **从未登录过**
  5. daemon **从未登录过**
  6. adm **从未登录过**

 如何查看哪些是开机启动的:systemctl list-unit-files

  1. [root@sc-mysql ~]# systemctl list-unit-files
  2. UNIT FILE STATE
  3. proc-sys-fs-binfmt_misc.automount static
  4. dev-hugepages.mount static
  5. dev-mqueue.mount static
  6. proc-sys-fs-binfmt_misc.mount static
  7. sys-fs-fuse-connections.mount static
  8. sys-kernel-config.mount static
  9. sys-kernel-debug.mount static
  10. tmp.mount disabled
  11. brandbot.path disabled
  12. systemd-ask-password-console.path static
  13. systemd-ask-password-plymouth.path static
  14. systemd-ask-password-wall.path static

其中 enabled 表示开机就可以启动的,

disabled是不能启动的。

static表示该服务与其他服务相关联,不能单独设置该服务的启动状态,为其他的需要使用的提供支持。

4、设置sshd服务开机自启

systemctl enable sshd 设置开机自启

  1. [root@nginx-kafka01 ~]# systemctl enable sshd 设置开机自启
  2. 查看和设置默认的 target :systemctl get-default
  3. [root@nginx-kafka01 ~]# systemctl get-default 取得目前的 target(运行级别)
  4. multi-user.target
  5. [root@nginx-kafka01 ~]# cd /etc/systemd/system
  6. [root@nginx-kafka01 system]# ll
  7. 总用量 4
  8. drwxr-xr-x. 2 root root 57 2月 26 18:01 basic.target.wants
  9. lrwxrwxrwx. 1 root root 46 2月 26 18:01 dbus-org.freedesktop.NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
  10. lrwxrwxrwx. 1 root root 57 2月 26 18:01 dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service
  11. lrwxrwxrwx. 1 root root 37 2月 26 18:06 default.target -> /lib/systemd/system/multi-user.target

3、查看sshd服务是否启动

1、看进程

2、看端口  

3、直接访问 

4、看日志

3.1、 查看进程

ps -aux |grep ssh或者 ps -ef|grep ssh

  1. 1、查看进程
  2. [root@localhost acl]# ps -ef |grep ssh 查看进程
  3. root 6858 1 0 09:28 ? 00:00:00 /usr/sbin/sshd -D
  4. root 7379 6858 0 09:29 ? 00:00:00 sshd: root@pts/0
  5. root 7398 6858 0 09:29 ? 00:00:00 sshd: root@pts/1
  6. root 8020 7722 0 11:37 pts/1 00:00:00 grep --color=auto ssh
  7. [root@localhost acl]# pidof sshd 查看进程号,有就已经启动
  8. 7398 7379 6858

3.2 看端口(需要知道端口号)

lsof -i:端口号、netstat -anplut |grep 端口号 

  1. [root@localhost acl]# lsof -i:22 查看端口号的(需要知道端口号)
  2. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  3. sshd 6858 root 3u IPv4 37869 0t0 TCP *:ssh (LISTEN)
  4. sshd 6858 root 4u IPv6 37878 0t0 TCP *:ssh (LISTEN)
  5. sshd 7379 root 3u IPv4 39374 0t0 TCP localhost.localdomain:ssh->192.168.119.1:50371 (ESTABLISHED)
  6. sshd 7398 root 3u IPv4 39493 0t0 TCP localhost.localdomain:ssh->192.168.119.1:50374 (ESTABLISHED)
  7. [root@localhost acl]# netstat -atpln |grep 22
  8. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6858/sshd
  9. tcp 0 36 192.168.119.137:22 192.168.119.1:50374 ESTABLISHED 7398/sshd: root@pts
  10. tcp 0 0 192.168.119.137:22 192.168.119.1:50371 ESTABLISHED 7379/sshd: root@pts
  11. tcp6 0 0 :::22 :::* LISTEN 6858/sshd

0.0.0.0:22表示在本机所有ip上监听22端口。

0.0.0.0:* 表示允许任意ip,任意端口客户端来连接。

3.3  直接访问

直接输入ssh  +目标主机地址 的登录指令。

3.4 看日志

日志文件存放路径:/var/log/secure

 /var/log:系统的所有日志存放位置,里面存放的文件为:

/var:-----variable 变量

/etc:--诸如此类,其他

log:日志

①bot里面存放启动,②messages里面存放普通,③secure存放与安全相关:存放④audit:安全审计服务

/var/log/secure 里会记录sudo执行的命令,可以查询到。

/var/log/audit 安全审计相关服务日志(audit.log)

auditctl

Linux的audit审计系统是提供系统中上事件的各种动作和事件,比如系统调用,文件修改,执行的程序。(只用于记录,不会进行安全问题组织)

audit的学习网站:https://zhuanlan.zhihu.com/p/337289840

扩展知识点:

查看命令属于哪个包:

  1. root@sanchuang ~]# ①which netstat #找到命令的绝对路径
  2. /usr/bin/netstat
  3. [root@sanchuang ~]# rpm -qf /usr/bin/netstat #查看这个绝对路径执行文件属于哪个包
  4. net-tools-2.0-0.51.20160912git.el8.x86_64
  5. ②或者yum provides netstat

所有的服务都是一个程序:

ssh中关闭服务,客户端连接还在 systemctl stop sshd。

4、故障排查

如果修改配置文件之后,重启也没生效的话,就需要进行排查。建议进行关闭selinux和防火墙。

4.1、selinux是什么

selinux是Linux系统里的一套安全机制,用来保护Linux系统的安全,会限制进程去做某些对安全有威胁的事情,永久修改selinux的策略为disable。

1、getenforce:查看selinux的状态,临时修改selinux的策略。

  1. [root@nginx-kafka01 ssh]# getenforce
  2. Disabled (如果是enforcing,要修改为disable)
  3. [root@nginx-kafka01 ssh]# setenforce 0 #临时调整selinux的策略为宽容模式
  4. [root@nginx-kafka01 ssh]# getenforce
  5. Permissive

2、永久修改selinux的策略:修改配置文件:

  1. [root@nginx-kafka01 selinux]# cat /etc/selinux/config (可以在/etc/selinux/config文件下面进行永久修改)
  2. # This file controls the state of SELinux on the system.
  3. # SELINUX= can take one of these three values:
  4. # enforcing - SELinux security policy is enforced.
  5. # permissive - SELinux prints warnings instead of enforcing.
  6. # disabled - No SELinux policy is loaded.
  7. SELINUX=disabled
  8. # SELINUXTYPE= can take one of three values:
  9. # targeted - Targeted processes are protected,
  10. # minimum - Modification of targeted policy. Only selected processes are protected.
  11. # mls - Multi Level Security protection.
  12. SELINUXTYPE=targeted

4.2、关闭防火墙

修改完之后,需要关闭防火墙。systemctl disable firewalld或者service  disable firewalld。

  1. root@localhost ssh]# systemctl firewalld stop 关闭防火墙
  2. Redirecting to /bin/systemctl stop firewalld.service

经常需要给openssh进行升级,如何保证Linux系统的安全?

yum update openssh openssh-clients openssh-server

三、ssh服务器加固

①修改端口

②禁用root用户

③ 升级openssh

④秘钥认证:需要进行配置

⑤密码认证:默认开启的:经常更换密码+设置复杂的密码

比如禁用root用户:

前提条件是PermitRootLogin no 允许用户登录设置为no:

 指定root用户去xshell中登录sshd的登录不了(因为设置了不允许root用户登录),而在xshell中使用普通用户先登录进去之后,再切换成root用户登录之后就能登录的原因:因为使用普通用户登录xshell之后已经进入了Linux系统里面,再使用su -root切换到root用户的时候不需要进过ssh登录认证,因为它已经进入到bash进程中了。

四、ssh服务远程登录流程

1、登录流程图为:

ssh服务登录流程详解:一个客服端client(xshel)通过使用用户名(root)和密码(123456)进行登录的话,通过sshd服务进行登录认证:sshd服务会去sshd_config文件下面查看是否允许root用户登录,如果允许的话,就会去Linux系统中(server)的/etc/passwd 和/etc/shadow文件中查看输入的用户名和密码是否正确。本地登录访问的是Linux系统里面的/etc/passwd 和/etc/shadow,不需要进行ssh服务登录认证。

2、扩展:如何将一个连接到自己的ssh的普通用户踢出去:杀死其所对应的进程。

根据终端号找到对应的bash进程,然后kill进程。比如:

  1. [root@nginx-kafka01 system]# w (查看到连接的用户)
  2. 11:37:20 up 2:12, 4 users, load average: 0.00, 0.03, 0.05
  3. USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  4. root tty1 09:39 1:57m 0.01s 0.01s -bash
  5. root pts/0 192.168.2.118 09:25 0.00s 0.03s 0.00s w
  6. root pts/1 192.168.2.118 10:14 9:12 0.06s 0.06s -bash
  7. root pts/2 192.168.2.144 11:37 18.00s 0.00s 0.00s -bash
  8. [root@nginx-kafka01 system]# ps -aux|grep bash (查看bash进程:pts/2,对应的终端号是:8591
  9. root 7852 0.0 0.2 115676 2048 pts/0 Ss 09:25 0:00 -bash
  10. root 7879 0.0 0.2 115668 2072 tty1 Ss+ 09:39 0:00 -bash
  11. root 8081 0.0 0.2 115756 2228 pts/1 Ss+ 10:14 0:00 -bash
  12. root 8591 0.0 0.2 115672 2080 pts/2 Ss+ 11:37 0:00 -bash
  13. root 8609 0.0 0.0 112824 988 pts/0 R+ 11:38 0:00 grep --color=auto bash
  14. [root@nginx-kafka01 system]# kill -9 8591 (杀死对应的进程),连接上的用户就会马上断开
  15. [root@xieshan ~]# 连接断开的样子:
  16. Connection closed.

下一篇将会详细讲解ssh服务的两种登录方式。 

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

闽ICP备14008679号