一、windows 终端工具使用密钥登录Linux

1.生成密钥对(私钥和公钥)

2.将公钥复制给Linux服务器

3.测试

1.生成密钥对(私钥和公钥)

xshell : 工具-用户秘钥管理者-生成,打开界面基本上是下一步即可。
找到私钥-属性-公钥标签,复制公钥。
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA01T4qtIKZ60l+uldThagiutpKy2agh/wdJ1Te5DFztB8Xw7RxUxC0+qGGdixA4Mc3j2+kpcAPqNuCJQ+5loK9NDuiusFmq2VoW/bQrpD6Y0OzN9PVSOPXR2VNUBfV5XUmopd7sNBNEraYCSihOY7pomXZBtCNu9UTAbkJunzgHM7C4rzp8QCYCof7gumiIUzR33vLFygWln+b3WdfboSjv+ta7TW9/9/TnoQBWGJQ1hWW/EQB6kUdxF/gQ71MRhQdUc40EwKQ4ptWh5ejU9q0nNxvXxtafxskPVe4jmK5kafJGa3R3B7z8mPICiKbN/HjA9eexJUmZnUoOom2kaepw== rsa 2048-20260406

2.写入对方文件~/.ssh/authorized_keys

[caojie@centos7 ~ 21:02:04]$ vim .ssh/authorized_keys
[caojie@centos7 ~ 21:02:50]$ ll .ssh/authorized_keys
-rw-rw-r-- 1 caojie caojie 399 Apr  6 21:02 .ssh/authorized_keys
[caojie@centos7 ~ 21:03:01]$ chmod 600 .ssh/authorized_keys
[caojie@centos7 ~ 21:03:12]$ 

3.登录时候,选择验证方式:公钥,并指定对应公钥。

  • 刚刚实现 windows 使用 laoma 用户秘钥登录 centos7

  • 思考:如何实现 windows 使用 root 用户秘钥登录 centos7?

在这里插入图片描述

[root@centos7 ~ 21:49:19]# cat /home/caojie/.ssh/authorized_keys >> /root/.ssh/authorized_keys

ssh配置

ssh 工具配置文件

~/.ssh/config,用户级别,给用户自己定制,优先级更高
/etc/ssh/ssh_config,系统(全局)级别,默认设置,针对系统中所有用户生效

sshd 服务配置文件

/etc/ssh/sshd_config ,针对sshd服务生效。

二、禁止密码登录

控制root用户登录。因为所有Linux系统管理员都是root,防止暴力破解。

PermitRootLogin no 禁止登录
​ PermitRootLogin prohibit-password 禁止使用密码登录

[root@centos7 ~ ]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.20260403
[root@centos7 ~ ]# vim /etc/ssh/sshd_config
1. /Root,定位。如果第一个搜索到的内容不是需要的,使用n(next)查找下一个。
2. yy 复制对应行,p 粘贴到下一行。(保留原有行)
3. 自行删除第一#
4. w 跳转到yes位置,cw 替换一个单词,输入prohibit-password,按esc
5. ZZ 保存退出。
6. 重新加载服务 
[root@centos7 ~ 10:34:57]# systemctl reload sshd
7. 验证

# 禁止密码登录。
PasswordAuthentication no

# 验证
DenyUsers, AllowUsers, DenyGroups,AllowGroups
例如,AllowUsers laoma

在这里插入图片描述

三、man 帮助

=============== man 帮助 ==================
man 帮助
命令 --help 查询命令
如果查询配置文件如何写?
man 配置文件名,例如man sshd_config
搜索 Root(/Root)
=============== man 帮助 ==================

四、软件包升级

=============== 软件包升级 ==================
# 查询软件包版本
[root@CentOS ~]# rpm -q openssh-server
openssh-server-7.4p1-22.el7_9.x86_64

# 查询可用版本
[root@CentOS ~]# yum list openssh-server --showduplicates
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
已安装的软件包
openssh-server.x86_64                  7.4p1-22.el7_9                          @anaconda
可安装的软件包
openssh-server.x86 _64                  7.4p1-21.el7                            base
openssh-server.x86_64                  7.4p1-22.el7_9                          updates  
openssh-server.x86_64                  7.4p1-23.el7_9                          updates 

# 升级到最新版本
[root@CentOS ~]# yum update -y openssh-server
# 测试 参数 /etc/ssh/sshd_config 中参数 PermitRootLogin prohibit-password

=============== 软件包升级 ==================

软件安装

  • bash-completion: 命令行补全
  • vim: 高亮显示编辑器
  • open-vm-tools: vmware 更好地控制虚拟机
  • lrzsz: 上传和下载
  • unzip: 解压zip
  • rsync: 同步
  • sshpass: 传递密码

五、vmware 三种网络模式

桥接模式
  • 相当于把虚拟机当成局域网里的一台独立电脑,它会从路由器获取一个和宿主机同网段的IP,既能上网,也能被局域网其他设备访问。
NAT模式
  • 最常用的默认模式,虚拟机通过宿主机的IP“借道”上网,它在一个虚拟子网里,外部网络无法直接访问它,安全又省心。
仅主机模式
  • 完全隔离的“单机版”网络,虚拟机只能和宿主机以及同一台机器上的其他虚拟机通信,彻底断绝与外部互联网的连接。

六、CentOS 7 初始化配置

1 命令提示符
2 关闭 selinux
3 关闭防火墙
4 配置本地仓库
5 安装基础软件包
6 配置密钥登录自己

七、查看日志/模拟sshd故障,并排故

1.systemd-journal (systemd子系统)
2.rsyslog 服务对应

rsyslog 将日志记录到对应的文件中:

| /var/log/messages | 大多数系统日志(排除认证、邮件、定时任务、调试日志) |
| /var/log/secure | 安全/认证相关日志(如ssh登录、用户验证) |
| /var/log/maillog | 邮件服务相关日志(如sendmail/postfix) |
| /var/log/cron | 定时任务执行日志(crontab/anacron) |
| /var/log/boot.log | 系统启动过程中的非syslog控制台消息 |

新增加一个ssh连接,日志更新内容如下

[root@centos7 ~ 22:21:07]# tail -f /var/log/secure 
Apr  6 22:04:33 centos7 sshd[1709]: Disconnected from 10.1.8.1 port 62666 [preauth]
Apr  6 22:04:41 centos7 sshd[1711]: Accepted publickey for caojie from 10.1.8.1 port 62685 ssh2: RSA SHA256:fGLRi49Oh3EyjHiz7uTxfLxRRwt7vrmOkhIK00UG/Bs
Apr  6 22:04:41 centos7 sshd[1711]: pam_unix(sshd:session): session opened for user caojie by (uid=0)
Apr  6 22:04:50 centos7 sshd[1711]: pam_unix(sshd:session): session closed for user caojie
Apr  6 22:04:59 centos7 sshd[1738]: Authentication refused: bad ownership or modes for directory /root/.ssh
Apr  6 22:05:00 centos7 sshd[1738]: error: Received disconnect from 10.1.8.1 port 62695:0:  [preauth]
Apr  6 22:05:00 centos7 sshd[1738]: Disconnected from 10.1.8.1 port 62695 [preauth]
Apr  6 22:09:41 centos7 sshd[952]: Received signal 15; terminating.
Apr  6 22:09:41 centos7 sshd[1773]: Server listening on 0.0.0.0 port 22.
Apr  6 22:09:41 centos7 sshd[1773]: Server listening on :: port 22.

模拟故障1:

[root@centos7 ~ 22:21:50]# cp /etc/ssh/sshd_config{,.0403}
[root@centos7 ~ 22:21:53]# echo hello world >> /etc/ssh/sshd_config
[root@centos7 ~ 22:21:59]# systemctl restart sshd
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
# 根据提示 查看状态
[root@centos7 ~ 22:22:04]# systemctl status sshd.service
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Mon 2026-04-06 22:22:04 CST; 25s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 1788 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=255)
 Main PID: 1788 (code=exited, status=255)

Apr 06 22:22:04 centos7.caojie.cloud systemd[1]: sshd.service: main process exited, c...a
Apr 06 22:22:04 centos7.caojie.cloud systemd[1]: Failed to start OpenSSH server daemon.
Apr 06 22:22:04 centos7.caojie.cloud systemd[1]: Unit sshd.service entered failed state.
Apr 06 22:22:04 centos7.caojie.cloud systemd[1]: sshd.service failed.
# 状态日志没有对应提示信息

# 继续查看message日志
[root@centos7 ~ 22:22:30]# tail /var/log/messages 
Apr  6 22:22:04 centos7 systemd: sshd.service failed.
Apr  6 22:22:47 centos7 systemd: sshd.service holdoff time over, scheduling restart.
Apr  6 22:22:47 centos7 systemd: Stopped OpenSSH server daemon.
Apr  6 22:22:47 centos7 systemd: Starting OpenSSH server daemon...
Apr  6 22:22:47 centos7 sshd: /etc/ssh/sshd_config: line 142: Bad configuration option: hello
Apr  6 22:22:47 centos7 sshd: /etc/ssh/sshd_config: terminating, 1 bad configuration options
Apr  6 22:22:47 centos7 systemd: sshd.service: main process exited, code=exited, status=255/n/a
Apr  6 22:22:47 centos7 systemd: Failed to start OpenSSH server daemon.
Apr  6 22:22:47 centos7 systemd: Unit sshd.service entered failed state.
Apr  6 22:22:47 centos7 systemd: sshd.service failed.
# 发现 142 行有问题。
# 根据提示修复。
[root@centos7 ~ 22:23:23]# vim /etc/ssh/sshd_config
# 注释最后一行
#hello world
[root@centos7 ~ 22:30:01]# systemctl restart sshd
[root@centos7 ~ 22:30:48]# systemctl is-active sshd
active
# 提示成功

模拟故障2:

# 首先将sshd_config文件移动到当前目录下
[root@centos7 ~ 22:40:10]# mv /etc/ssh/sshd_config .
# 重启 Linux 上的远程连接服务(SSH),提示启动失败
[root@centos7 ~ 22:40:15]# systemctl restart sshd
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
# 查看 SSH 服务最近的报错日志,找出为什么启动失败。
[root@centos7 ~ 22:41:12]# journalctl -e -u sshd
Apr 06 22:29:14 centos7.caojie.cloud sshd[11736]: /etc/ssh/sshd_config: terminating, 1 ba
Apr 06 22:29:14 centos7.caojie.cloud systemd[1]: sshd.service: main process exited, code=
Apr 06 22:29:14 centos7.caojie.cloud systemd[1]: Failed to start OpenSSH server daemon.
Apr 06 22:29:14 centos7.caojie.cloud systemd[1]: Unit sshd.service entered failed state.
Apr 06 22:29:14 centos7.caojie.cloud systemd[1]: sshd.service failed.
Apr 06 22:29:56 centos7.caojie.cloud systemd[1]: sshd.service holdoff time over, scheduli
Apr 06 22:29:56 centos7.caojie.cloud systemd[1]: Stopped OpenSSH server daemon.
Apr 06 22:29:56 centos7.caojie.cloud systemd[1]: Starting OpenSSH server daemon...
Apr 06 22:29:56 centos7.caojie.cloud sshd[11738]: Server listening on 0.0.0.0 port 22.
Apr 06 22:29:56 centos7.caojie.cloud sshd[11738]: Server listening on :: port 22.
Apr 06 22:29:56 centos7.caojie.cloud systemd[1]: Started OpenSSH server daemon.
Apr 06 22:30:01 centos7.caojie.cloud systemd[1]: Stopping OpenSSH server daemon...
Apr 06 22:30:01 centos7.caojie.cloud systemd[1]: Stopped OpenSSH server daemon.
Apr 06 22:30:01 centos7.caojie.cloud systemd[1]: Starting OpenSSH server daemon...
Apr 06 22:30:01 centos7.caojie.cloud sshd[11747]: Server listening on 0.0.0.0 port 22.
Apr 06 22:30:01 centos7.caojie.cloud sshd[11747]: Server listening on :: port 22.
Apr 06 22:30:01 centos7.caojie.cloud systemd[1]: Started OpenSSH server daemon.
Apr 06 22:30:47 centos7.caojie.cloud systemd[1]: Stopping OpenSSH server daemon...
Apr 06 22:30:47 centos7.caojie.cloud systemd[1]: Stopped OpenSSH server daemon.
Apr 06 22:30:47 centos7.caojie.cloud systemd[1]: Starting OpenSSH server daemon...
Apr 06 22:30:48 centos7.caojie.cloud sshd[11755]: Server listening on 0.0.0.0 port 22.
Apr 06 22:30:48 centos7.caojie.cloud sshd[11755]: Server listening on :: port 22.
Apr 06 22:30:48 centos7.caojie.cloud systemd[1]: Started OpenSSH server daemon.
Apr 06 22:41:12 centos7.caojie.cloud systemd[1]: Stopping OpenSSH server daemon...
Apr 06 22:41:12 centos7.caojie.cloud systemd[1]: Stopped OpenSSH server daemon.
Apr 06 22:41:12 centos7.caojie.cloud systemd[1]: Starting OpenSSH server daemon...
Apr 06 22:41:12 centos7.caojie.cloud sshd[11769]: /etc/ssh/sshd_config: No such file or d
Apr 06 22:41:12 centos7.caojie.cloud systemd[1]: sshd.service: main process exited, code=
Apr 06 22:41:12 centos7.caojie.cloud systemd[1]: Failed to start OpenSSH server daemon.
Apr 06 22:41:12 centos7.caojie.cloud systemd[1]: Unit sshd.service entered failed state.
Apr 06 22:41:12 centos7.caojie.cloud systemd[1]: sshd.service failed

# 发现 /etc/ssh/sshd_config: No such file or directory  没有安装ssh服务

# 查询文件哪个软件包提供
[root@centos7 ~ 22:43:27]# yum provides /etc/ssh/sshd_config
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
openssh-server-7.4p1-21.el7.x86_64 : An open source SSH server daemon
Repo        : base
Matched from:
Filename    : /etc/ssh/sshd_config



openssh-server-7.4p1-22.el7_9.x86_64 : An open source SSH server daemon
Repo        : updates
Matched from:
Filename    : /etc/ssh/sshd_config



openssh-server-7.4p1-23.el7_9.x86_64 : An open source SSH server daemon
Repo        : updates
Matched from:
Filename    : /etc/ssh/sshd_config



openssh-server-7.4p1-23.el7_9.x86_64 : An open source SSH server daemon
Repo        : @updates
Matched from:
Filename    : /etc/ssh/sshd_config


# yum-utils提供yumdownloader,用于下载软件包
[root@centos7 ~ 22:43:30]# yum install -y yum-utils
[root@centos7 ~ 22:43:48]# yumdownloader openssh-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
openssh-server-7.4p1-23.el7_9.x86_64.rpm                          | 459 kB  00:00:00     
[root@centos7 ~ 22:43:59]# rpm2cpio openssh-server-7.4p1-23.el7_9.x86_64.rpm | cpio -t 
./etc/pam.d/sshd
./etc/ssh/sshd_config
./etc/sysconfig/sshd
./usr/lib/systemd/system/sshd-keygen.service
./usr/lib/systemd/system/sshd.service
./usr/lib/systemd/system/sshd.socket
./usr/lib/systemd/system/sshd@.service
./usr/lib64/fipscheck/sshd.hmac
./usr/libexec/openssh/sftp-server
./usr/sbin/sshd
./usr/sbin/sshd-keygen
./usr/share/man/man5/moduli.5.gz
./usr/share/man/man5/sshd_config.5.gz
./usr/share/man/man8/sftp-server.8.gz
./usr/share/man/man8/sshd.8.gz
./var/empty/sshd
1946 blocks
# 直接提取对应文件
[root@centos7 ~ 22:44:18]# rpm2cpio openssh-server-7.4p1-23.el7_9.x86_64.rpm | cpio -id ./etc/ssh/sshd_config
1946 blocks
[root@centos7 ~ 22:44:36]# yum install -y tree
[root@centos7 ~ 22:44:51]# tree etc
etc
└── ssh
    └── sshd_config

1 directory, 1 file
# 最后重启 Linux 上的远程连接服务(SSH),提示启动成功
[root@centos7 ~ 22:44:55]# systemctl restart sshd
[root@centos7 ~ 22:45:17]# systemctl is-active sshd
active
[root@centos7 ~ 22:47:38]# 

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐