Linux中的远程登陆服务

1. Openness功能

(1)sshd服务的用途
作用:可以实现通过网络在远程主机中开启安全shell的操作
ssh:Secure SHell(客户端服务)
sshd:Secure SHell daemon(服务端服务)
(2)安装包
当没有ssh服务时,使用openssh-server安装包进行安装
(3)主配置文件
/etc/ssh/sshd_conf
(4)默认端口
22
(5)客户端命令
ssh
在这里插入图片描述

2.ssh命令的使用方法

ssh [-l 远程主机用户] <ip|hostname>
输入yes后,可以使用cd ~/.ssh命令,查看该文件下生成known_hosts文件,查看该文件,里面有一串加密字符串,是在输入yes时,所连接的远程主机传过来的
在这里插入图片描述在服务器端输入cd /etc/ssh命令,这是ssh配置文件,可以在自己的主机端看到该加密字符后面为Z89bM,在服务器端/etc/ssh该文件下查找ecdsa.pub(pub就是公钥),可以cat查看该文件里面的内容与客户端完全一致(如上图),只有一致时才能认证成功并登陆,不一致无法登陆。当删除该目录下面的所有文件删除rm -fr /etc/ssh/ssh_host_*,然后输入 systemctl restart sshd 命令,令该目录下的所有文件重新生成,重新生成后,该文件的key会发生变化,此时再次连接服务端主机,身份认证就不成功被拒绝(如下图所示):
在这里插入图片描述
当出现连接因为认证问题被拒绝时解决方案:注意看报错内容,它会提示具体哪一行有问题,可以进入该文件(vim),把有问题的行删除,再重新连接。然后进入 .ssh 查看里面会有一个新的key文件,当该文件存在之后,再登陆的时候,就不用再输入yes/no,直接输入密码登陆即可:
在这里插入图片描述在这里插入图片描述

2.1 常用参数

-l ——指定登陆用户。注意登陆完服务端后要退出,不要直接切换到客户端用户
-i ——指定私钥
-X——远程登陆的时候开启图形
-f ——后台运行
-o ——指定连接参数
-t ——指定连接跳板

sh -l root 172.25.254.204 -o “StrictHostKeyChecking=no” 命令,表示首次连接不需要输入yes。执行过该命令后,再重新登陆时,不需要再输入-o参数也不会再出现yes/on,因为已经自动输入了:
在这里插入图片描述ssh -l root 172.25.254.1 -t ssh -l root 172.25.254.204命令,表示先登陆1号主机,再跳到204号主机。适用于需要连接一台主机的时候被拒绝了,就可以先连接其他主机,再跳到该主机上:
在这里插入图片描述

3.sshd的key认证

3.1 认证类型

对称加密 加密和解密是同一串字符。(容易泄漏、可暴力破解、容易遗忘)
非对称加密 加密用公钥,解密用私钥。(不会被盗用、攻击者无法通过无密钥方式登陆服务器)

3.2 生成非对称加密密钥

(1)方法一:ssh-keygen命令
在这里插入图片描述输入保存密钥文件时,前面括号里的是默认目录及文件名,也可以自己设定文件及路径,但这样需要改打开大量的配置文件,为了避免这种情况,可以直接回车,默认即可;(empty for no passphrase)表示密钥密码,可以要也可以不要,若需要,要确保密码大于四位。若不要直接回车相当于已经有密钥,不再要密码,可以达到免密登陆;最后,id_rsa文件 表示私钥,可以开锁。id_rsa.pub文件表示公钥,可以上锁。

(2) 方法二:非交互式,ssh-keygen -f id_rsa -P “” ,引号中可以输入密码,但一般为空
在这里插入图片描述

3.3 对服务器加密

ssh-copy-id -i /root/.ssh/id_rsa.pub username@serverip
eg:ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.204
在这里插入图片描述

上面命令中,加的用户是谁,锁的就是谁,其他用户不会被锁。如果客户端用户的.ssh目录下存在私钥文件,就可以直接免密登陆。如果私钥不存在这个路径下,无法直接认证,那么就需要输入密码,此时若不知道密码,就无法登录。当密钥被窃取了,可以在服务器端,将公钥移出.ssh目录,此时客户端也是无法连接服务器的。出现added表示添加成功

4. sshd 安全优化参数详解

Port 2222 ——设定端口为2222,默认为22
PermitRootLogin yes ——no
PasswordAuthentication yes ——no
AllowUsers lee ——用户白名单(只有谁能用),多个用户空格隔开就可以
DenyUsers lee ——用户黑名单,多个用户空格隔开就可以

1.注意安全优化是再服务器上操作的

2.做实验前要关闭防火墙:systemctl disable --now firewalld
3. 以下操作都是在vim /etc/ssh/sshd_config文件中进行的
4.每次修改后,都要重新加载配置,systemctl reload sshd.service
5. 做端口实验前,用getenforce命令查看,系统中的selinux是否开启,开启时无法改变端口号 。若它时开启的,需要关闭它, 用vim /etc/selinux/config命令,使文件里面的SELINUX=disabled即可,完成后需要重启系统;可以使用ss -anltupe | grep sshd查看端口信息,其中a表示:所有端口 ;n表示:不做解析,即显示ip而不是主机名;l表示:正在活跃的 ;表示:tcp协议; u表示:udp协议 ;p表示:程序名称 ;e表示:显示完全信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值