LInux系统中的ssh服务

本文详细介绍了如何在虚拟机环境中配置SSH服务,包括环境设定、SSH简介、key认证过程、安全设定方法及常见问题排查技巧。

一、虚拟机环境设定:

本次与ssh服务有关的内容均在两台虚拟机中完成

设置客户端desktop虚拟机名称为client,ip地址为172.25.254.115

设置服务端server虚拟机名称为server,ip地址为172.25.254.215

具体设置方法如下:

1.配置网络:

nm-connection-editor


删除旧的,新建网络

Ethernet中Connection name填写为eth0,Device MAC address选xxxxxx(eth0)

IPv4 Settings中选Method为Manual, 点add,依次填写172.25.254.115/215 24 空 save close

2.更改虚拟机名称:

hostnamectl set-hostname client/server.example.com

3.删除两台虚拟机中原/root/.ssh/中保存的文件

rm -fr /root/.ssh/*

二、ssh简介

ssh= secure shell,是应用层的安全协议

可以通过网络在主机中开启shell的服务

客户端软件:sshd

1、连接方式:

     ssh    username@ip     ##文本模式的连接

    ssh -X username@ip      ##可以在连接成功后开启图形

    注意:

        第一次连接陌生主机时要建立认证文件, 所以会询问是否建立,需要输入yes

        再次连接此台主机时,因为已经生成~/.ssh/know_hosts文件,所以不需要再次输入yes 

2、远程复制:

1)scp file root@ip:dir        ##远程上传

    scp file root@172.25.254.115:/root/Desktop/       ##远程上传文件

    scp -r test root@172.25.254.115:/root/Desktop/     ##远程上传文件夹

2)scp root@ip:file dir        ##远程下载

    scp root@172.25.254.215:/root/Desktop/file .       ##远程下载文件


    scp -r root@172.25.254.215:/root/Desktop/test/ .    ##远程下载文件夹

三、sshd的key认证

1.生成认证KEY

[root@server ~]# ssh-keygen              ##生成密钥的命令

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):           ##指定保存加密字符的文件(使用默认)

Enter passphrase (empty for no passphrase):                       ##设定密码(使用空密码)

Enter same passphrase again:                                                   ##确认密码

Your identification has been saved in /root/.ssh/id_rsa.       ##私钥(钥匙)

Your public key has been saved in /root/.ssh/id_rsa.pub.    ##公钥(锁)

2.加密服务

[root@server ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.215

[root@server ~]# ls /root/.ssh/

authorized_keys  id_rsa  id_rsa.pub  known_hosts

              ^

注意:此文件出现表示加密完成

3.分发钥匙

scp /root/.ssh/id_rsa root@172.25.254.115:/root/.ssh/


4.测试

在客户端主机中(虚拟机client,ip172.25.254.115)

ssh root@172.25.254.215     ##连接时发现直接登陆不需要root登录系统密码认证

四、sshd的安全设定

vim /etc/ssh/sshd_config



78 PasswordAuthentication yes|no       ##是否允许用户通过登录系统的密码做sshd的认证


48 PermitRootLogin yes|no                     ##是否允许root用户通过sshd服务的认证


52 AllowUsers student westos               ##设定用户白名单,白名单出现默认不在名单中的用户不能使用sshd


53 DenyUsers    westos                            ##设定用户黑名单,黑名单出现默认不在名单中的用户可以使用sshd

systemctl restart sshd.service

注意:配置完sshd_config文件后需要重启sshd服务

五、连接不上服务端主机时的排错思路:

1.网通是否通畅

2.sshd服务是否开启

3.是否被添加到黑名单

注意:配置完sshd_config文件后需要重启sshd服务

4.是否设置只允许xxip访问

vim /etc/hosts.allow      ##白名单

vim /etc/hosts.deny      ##黑名单

六、添加sshd登陆信息

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

七、用户的登陆审计

1.w          ##查看正在使用当前系统的用户(信息存放在/var/run/utmp文件中)

 w -f      ##查看使用来源

w -i         ##显示IP

2.last        ##查看使用过并退出的用户信息(信息存放在/var/log/wtmp文件中)

3.lastb        ##查看试图登陆但没成功的用户(信息存放在/var/log/btmp文件中)

### 查看 Linux 系统SSH 服务状态的命令 在 Linux 系统中,可以通过以下几种方法来查看 SSH 服务的状态: 1. **使用 `systemctl` 命令(适用于 systemd 系统)**: ```bash systemctl status sshd ``` 此命令会显示 SSH 服务的详细状态信息,包括是否正在运行、启动时间以及最近的日志输出等[^1]。 2. **使用 `service` 命令**: ```bash service sshd status ``` 这是另一种常见的方法,用于检查 SSH 服务的状态。如果服务正在运行,将返回类似“sshd is running”的信息[^3]。 3. **通过进程查找确认 SSH 服务是否运行**: ```bash ps -e | grep ssh ``` 如果 SSH 服务已启动,通常会显示类似于以下内容的结果: ``` 2254 ? 00:00:00 sshd ``` 其中,“sshd”表示 SSH 服务的进程名称[^1]。 4. **检查 SSH 服务监听的端口**: ```bash netstat -ntlp | grep ssh ``` 或者使用更现代的 `ss` 命令: ```bash ss -ntlp | grep ssh ``` 如果 SSH 服务正常运行,将返回类似以下内容: ``` tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 22109/sshd ``` 表明 SSH 服务正在监听端口 22[^4]。 5. **验证 SSH 安装包是否存在**: 对于基于 RPM 的系统(如 CentOS),可以使用以下命令检查 SSH 相关软件包是否已安装: ```bash rpm -qa | grep ssh ``` 如果需要进一步了解安装路径和配置文件位置,可以运行: ```bash rpm -ql openssh-server ``` 6. **Ubuntu 系统中的特定命令**: 在 Ubuntu 系统中,可以使用以下命令来检查 SSH 服务的状态: ```bash sudo /etc/init.d/ssh status ``` 或者结合 `systemctl` 命令: ```bash systemctl status ssh ``` 如果服务未启动,可以尝试使用以下命令启动它: ```bash sudo /etc/init.d/ssh start ``` 或者: ```bash systemctl start ssh ``` ### 注意事项 - 如果发现 SSH 服务无法正常工作,可能需要检查防火墙设置。例如,关闭防火墙可以临时解决连接问题: ```bash service iptables stop ``` - 确保 SSH 配置文件 `/etc/ssh/sshd_config` 中的设置正确无误,并根据需要调整监听地址或端口号。 ```bash # 示例:检查配置文件语法 sudo sshd -t ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值