远程登录sshd服务


一、sshd服务介绍

Openssh功能
1.sshd服务的功能:
可以实现通过网络在远程主机开启安全shell操作
Secure SHell ssh 客户端
Secure SHell daemon(守护进程,管理ssh的进程,类似systemctld系统守护进程) sshd 服务端
2.安装包
openssh-server
3.主配置文件
/etc/ssh/sshd_conf
在这里插入图片描述

4.默认端口 22(可以理解,ip是家中大门,端口是房间门)
(服务在ip上开启的对外开放的接口,连接这个接口就是使用这个程序的功能)
5.客户端命令 ssh
6.实验环境:两台虚拟机,a是服务器,b是客户端
能通信,关闭图形,init 3
在这里插入图片描述

二、使用方法

2.1基本用法

ssh 是客户端使用的,连接的是服务器
可以在ssh后面直接接命令

ssh -l 远程主机用户(服务器) ip|hostname
ssh -l root 172.25.254.100

yes,第一次连接会有
在这里插入图片描述
fingerprint在你当前目录的.ssh/底下
比如:cd /root/.ssh/
这个文件和服务端100上面的文件是匹配的
两个key一样
在这里插入图片描述在这里插入图片描述
第二次连接没有认证指纹
在这里插入图片描述

2.2模拟匹配(认证)不成功,远程登录失败

删掉原先的key重启服务,然后重新生成key
在这里插入图片描述
现在的key和之前不一样了
在这里插入图片描述
认证改变了,认证不匹配,不通过
在这里插入图片描述
解决方法(提示了红框标出,这行文件有问题):
删掉该第一行
在这里插入图片描述总结:
当连接因为认证问题被拒绝时解决方案
在提醒的文件中删除对应的行即可

三、常用参数

3.1常用参数

-l 指定登录用户
-i 指定私钥
-X 开启图形
-f 后台运行
-o 指定连接参数
-t指定连接条板

3.2常用参数用法

-X参数

-X开启图形
真机连接a主机

ssh -l root 172.25.254.100
gedit 开启图形,开启不了

因为,ssh连接默认是文本连接,不能开启图形
在这里插入图片描述``

ssh -X -l root 172.25.254.100
gedit

有了开启图形软件的权利
在这里插入图片描述

-f参数

可以在ssh后面直接接命令
在这里插入图片描述
等待打开时间时候会占用你的终端
打入后台后,你可以在终端运行新的指令
在这里插入图片描述

-o参数

指定连接参数,这个参数可以在man中查看
最常用的参数StrictHostKeyChecking=no

ssh -o "StrictHostKeyChecking=no" -l root 172.25.254.100
自动会输入成yes

在这里插入图片描述

-t参数

连接A服务器的时候,我的权利不行,另一台服务器250我能连接并且另一台服务器能连接A服务器,可以先连接250在由250跳到A
先连接到250服务器再由250服务器跳到100
在这里插入图片描述
这个时候A服务器看见的是250服务器连接它的
在这里插入图片描述

四、key认证

4.1概念

B是客户端,A是服务器

ssh -l root 172.25.254.100这样连接必须知道root用户在远程服务器的密码

在这里插入图片描述

这种认证方式叫用户认证
认证方法是对称加密,加密和解密用的是同一串字符,如:指纹
非对称加密,加密和解密用的不同,钥匙与锁

对称加密,容易被破解,可以被暴力破解(用一个计算速度很快的电脑一个一个试),所以密码要有强度校验,并且容易遗忘
非对称加密,加密用公钥,解密用私钥,不会被盗用,攻击者无法通过无秘钥方式登录服务器

4.2生成公钥和秘钥

公钥和私钥没有必要必须在服务器端生成,客户端和服务器端都能生成公钥和私钥(比如买锁那都能买)
比如在客户端生成公钥和私钥

ssh-keygen 生成公钥和私钥的命令

问你key(秘钥加密字符串的文件)保存在哪里,如果更改保存路径还需要更改ssh主配置文件,更改麻烦,所以用默认就行
在这里插入图片描述
设定一个密码,就是需要秘钥还需要输入密码,(秘钥的密码)麻烦,直接回车
在这里插入图片描述公钥和私钥生成了
在这里插入图片描述cat /root/.ssh/id_rsa
这个是私钥(解锁)
在这里插入图片描述公钥(上锁)
cat /root/.ssh/id_rsa.pub
在这里插入图片描述
服务器发来的frigerprint指纹认证密码,证明这台主机B连接服务器A的时候是原先的主机B

在这里插入图片描述该生成公钥和秘钥都是交互式,不利于自动操作
如果用脚本生成公钥和秘钥,脚本不能自动运行
自动操作不是交互式

ssh-keygen --help

在这里插入图片描述
非交互式生成公钥和秘钥-f指定保存加密的文件-P表示指定的密码

ssh-keygen -f /root/.ssh/id_rsa -P ""

在这里插入图片描述

4.3公钥和私钥的使用(上锁)

ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.100

要被锁的服务器的密码,征求被锁服务器的同意,要不然就是非法的
类似你用锁乱锁别人家门肯定不行
在这里插入图片描述
这个时候服务器A会多个文件,这个文件其实就是公钥
在这里插入图片描述
和B的公钥是一样的

在这里插入图片描述客户端B有私钥,只有一个秘钥
在这里插入图片描述
直接连接,无需密码(直接默认使用唯一的私钥去开公钥)

在这里插入图片描述
如果有很多私钥,-i指定具体私钥去开公钥就行了
在这里插入图片描述

4.4总结

ssh-keygen -f /root/.ssh/id_rsa -P "" 生成Key
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.100 用key给服务器加密
加密完服务器有两种认证方式,有私钥的无需输入密码连接,无私钥输入密码连接

五、sshd服务的安全优化

5.1安全问题描述

5.1.1原始密码与key认证

7号主机可以连接我们的服务器A,有输密码的权利,但是这个功能本身不安全,本应该不能开启,所以要关闭这个功能
所以需要在服务器A上关闭不安全的功能
在这里插入图片描述

5.1.2修改端口

不修改端口,大家都知道端口是22默认端口

5.1.3限制谁可连接谁不可连接

设定只能连接谁或者不能连接谁

5.2 关闭原始的密码认证

编辑服务器A的主配置文件
在这里插入图片描述
改成no服务器A的密码认证功能关闭了,只有公钥和私钥(key)认证可以连接
关闭密码认证前,先要把key认证服务启动好,因为Key认证一开始需要密码认证来承认允许Key认证(允许上锁)

在这里插入图片描述
重启服务systemctl restart sshd
现在没有输入密码的权利了,现在连暴力破解都不行了,因为没有输入密码的途径了
在这里插入图片描述

5.3修改端口

由于服务器开启的selinux会限制你的端口的更改,需要更改selinux为警告模式
关闭火墙
在这里插入图片描述
systemctl disable --now firewalld
因为火墙只允许22端口,如果开启火墙2021就测试不成功了

修改主配置文件

在这里插入图片描述
重启服务systemctl restart sshd
端口变成2021了

在这里插入图片描述在这里插入图片描述

5.4设定可连接的对象(用户的黑白名单)

白名单在名单才可被ssh连接
在主配置文件中,找个空位写AllowUsers westos只能连接westos用户
重启服务systemctl restart sshd
在这里插入图片描述
多个用户

AllowUsers westos root

重启服务systemctl restart sshd
连接成功
在这里插入图片描述
黑名单在名单不能被ssh连接

DenyUsers westos 
westos不能通过ssh连接

重启服务systemctl restart sshd
在这里插入图片描述

5.5总结

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要检查sshd远程服务是否开启,可以按照以下步骤进行操作: 1. 首先,使用命令`netstat -anp| more`来查看是否有22端口监听。如果有22端口监听,说明sshd服务已经开启了。\[1\] 2. 如果没有22端口监听,说明sshd服务没有开启。可以使用以下命令来安装和启用sshd服务: - 使用命令`sudo apt-get install openssh-server`来安装openssh-server。 - 安装完成后,使用命令`sudo service sshd restart`来启动sshd服务,它会监听端口22。\[1\] 3. 为了确认sshd服务是否正常工作,可以使用telnet命令来远程连接服务器并检查端口是否连通。使用命令`telnet ip port`,将ip替换为服务器的IP地址,port替换为22。如果telnet成功连接,说明sshd服务已经开启并且端口连通。\[1\] 另外,还可以使用以下命令来检查sshd服务的状态和进行操作: - 使用命令`sudo ps -e | grep ssh`来查看ssh服务是否安装和启动。如果有sshd进程,说明服务已经启动。 - 如果没有sshd进程,可以使用命令`sudo apt-get install openssh-server`来安装openssh-server,并使用命令`sudo /etc/init.d/ssh start`来启动sshd服务。 - 使用命令`sudo service ssh status`来查看sshd服务的状态。 - 使用命令`sudo service ssh stop`来关闭sshd服务。 - 使用命令`sudo service ssh restart`来重启sshd服务。\[2\] 最后,要连接到Linux服务器,可以使用以下步骤: 1. 使用命令`ifconfig`来查看服务器的IP地址。如果没有ifconfig命令,可以使用命令`sudo apt install net-tools`来安装net-tools包,然后再次使用`ifconfig`命令。 2. 复制服务器的IP地址,并使用连接工具连接到该IP地址。\[3\] 通过以上步骤,您可以检查sshd远程服务是否开启,并连接到Linux服务器。 #### 引用[.reference_title] - *1* *2* *3* [Ubuntu远程连接linux无法连接或者连接拒绝,检查sshd是否开启(默认监听端口22)](https://blog.csdn.net/qq_43048316/article/details/111240278)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值