文章目录
前言
在家也可以工作的Linux系统远程登陆服务
一、sshd的介绍
1.sshd服务的用途
可以实现通过网络在远程主机中开启安全shell的操作
Secure SHell ===>ssh ##客户端
Secure SHell daemon ===>sshd ##服务端
2.安装包
rpm -qa | grep ssh # 查询安装包
openssh-server
3.主配置文件
rpm -qc openssh-server-8.0p1-13.el8.x86_64/etc/pam.d/sshd # 查询配置文件
/etc/ssh/sshd_conf
4.默认端口
netstat -antlupe |grep sshd # 查询sshd端口
22
5.客户端命令
ssh
二、ssh的使用
1.基本用法
在实验之前,搭建两台主机的网络,确保两台主机之间可以通信。
确保远程服务开启。
避免干扰,删除两台主机的.ssh文件。
rm -fr ~/.ssh/
使用以下命令实现远程登录
ssh -l root 192.168.1.111 # root是远程主机的用户,192.168.1.111是远程主机的IP
首次连接远程主机时,会出现以下提示,认证key,输入yes继续。
输入远程主机用户密码,登录到远程主机。
测试以下命令,远程主机桌面增加三个文件。
cd /root/Desktop/
touch westos{1..3}
exit
命令退出远程主机连接
查看当前主机的~/.ssh/目录,自动生成一个文件,存放认证key。
cat /etc/ssh/ssh_host_ecdsa_key.pub
在远程主机上有与之对应的文件。
如果key无法对应,会拒绝连接。
测试:在远程主机删除key文件,重启sshd服务,key会发生变化。
此时连接远程主机会报错。
解决办法:编辑这个文件。删除远程主机对应的key。
再次连接恢复正常。
2.ssh 的常用参数
-l : 指定登陆用户
-i : 指定私钥
-X : 开启图形
-f : 后台运行
-o : 指定连接参数
ssh -l root 192.168.1.111 -o "StrictHostKeyChecking=no"
: 首次连接不许要输入yes
-t : 指定连接跳板 : ssh -l root 192.168.111 -t ssh -l root 192.168.1.111
3.sshd key认证
1.认证类型
1.对称加密
加密和解密是同一串字符
容易泄漏
可暴力破解
容易遗忘
2.非对称加密
加密用公钥,解密用私钥
不会被盗用
攻击者无法通过无密钥方式登陆服务器
2.生成非对称加密密钥
使用ssh-keygen
获取密钥。
密钥存放位置一般为默认,密码设置为空指定免密登录。
使用以下命令具有相同效果。
ssh-keygen -f /root/.ssh/id_rsa -P ""
3.对服务器加密
生成密钥,加密服务器指定用户
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.111
将密钥传输给需要的主机
scp /root/.ssh/id_rsa root@192.168.1.222:/root/.ssh/id_rsa
拥有密钥的主机可以实现免密登录
4.sshd安全优化参数详解
实验前先关闭防火墙和selinux,否则修改端口号的范围会被限制报错。
systemctl disable --now firewalld
setenforce 0
端口号修改
vim /etc/ssh/sshd_config
Port 2222 : 设定端口为2222
PermitRootLogin yes|no #对超级用户登陆是否禁止
PasswordAuthentication yes|no #是否开启原始密码认证方式
AllowUsers lee : 用户白名单
DenyUsers lee : 用户黑名单