ssh安全远程管理

一、ssh概述

ssh是Secure Shell的缩写,是一个建立在应用层上的安全远程管理协议。
SSH是目前较为可靠的传输协议,转为远程登录会话和其他网络服务提供安全性。里用ssh协议可以有效防止远程管理过程中的信息泄露问题。
SSH可用于大多unix和类unix操作系统中,能够实现字符界面的远程登录管理,默认试用22端口,采用密文形式在网络中传输数据,相对于通过明文传输的Telnet协议,具有更高的安全性。

二、SSH的登录验证模式

SSH提供了基于账户密码(口令)和密钥两种登录验证方式,这两者都是通过密文传输数据的。

格式:

ssh 用户名@IP地址
ssh root@192.168.1.130
在这里插入图片描述

windows远程登录Linux主机一般试用第三方工具,比如xshell等。
在xshell中,也可以直接ssh ip进行登录。
在Linux中,也可以直接ssh ip进行其他Linux的远程管理。exit可以退出。

三、密钥对验证模式

1.密钥对验证前提

客户机已经把自己的公钥放在了服务器上。

2.密钥对验证流程

(1).客户机拿着自己的公钥,去请求连接服务器,服务器要求客户机接受自己的公钥文件
(2).服务器接受客户端的公钥,验证本地存放的公钥内容和接收到的是否一致
(3).若不一致,则直接拒绝登录请求;若一致,则试用客户端的公钥加密一串“质疑”信息,发送给客户端
(4).客户端收到加密内容后,使用客户端私钥进行解密,解密后,再使用服务器公钥将结果加密,然后传给服务器。
(5).服务器接受客户端发送的数据包,使用服务器私钥进行解密,若结果和当时发给客户机的“质疑”内容一样。则成功简历了安全的远程连接。

四、配置SSH服务

1. 环境准备

两台Linux系统主机,相互可以通信。

临时关闭防护功能

iptables -F 清空防火墙规则
sentenforce 0 临时关闭SELinux

永久关闭防护功能
chkconfig iptables off
systemctl disable iptables (firewalld)

iptables -L
查看防火墙规则,可以清空iptables前后看

getenforce
查看SELinux是否生效,Enforcing表示生效
设置Setnforce 0后,Permissive,警告,不生效。

systemctl status iptables
或service iptables status
查看iptables服务和生效否

2.用户密码验证:

ssh root@192.168.1.130
可以不写用户名,默认root。exit退出

3.密钥对验证

Linux主机之间的密码对登录验证

客户端生成密钥对登录验证

ssh -keygen 0t rsa -b 2048
-t,指定加密类型(rsa/dsa等)
-b,指定密钥对加密长度
默认生成位置会在当前家目录下的.ssh/目录下

将公钥文件上传至服务器端

ssh -copy -id 用户名@服务器IP地址

客户端登录服务器

ssh 用户名@服务器IP地址

注:
rsa加密类型1024以内曾被暴力破解过,所以加密长度要多余1024位。
密钥对登录的优先级高于账户密码优先级。

4.windows使用密钥对登录Linux(xshell)

(1).使用xshell自带的密钥对生成向导,生成密钥对。

点击工具栏,选择用户密钥生成向导
在这里插入图片描述

点击生成,选择rsa密钥类型,因为rsa加密类型比较常用,长度不小于1024,常用2048。点击下一步
在这里插入图片描述

自动生成密钥对,点击下一步
在这里插入图片描述

输入密钥名称,是否对密钥本身进行加密,不加密就不输入,建议是输入密码最好。然后下一步。
在这里插入图片描述

这里点击下一步会显示公钥内容,进行复制,不建议保存位文本,因为windows和Linux的符号,空格,回车这些是有区别的。
在这里插入图片描述

粘贴至需要登录的服务器下客户端公钥所在位置,默认在家目录下.ssh/authorized_keys中,如果其中有一台的客户端公钥,直接空行加上即可。
在这里插入图片描述
在这里插入图片描述

注意:
sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600
(2).登录

ssh root@IP
登陆后选择public-key,密钥登录即可。
在这里插入图片描述

5.禁止使用密码登录。

一般情况下,当使用密钥登录后,就将账号密码登录功能关掉最好。

配置文件
/etc/ssh/sshd_config
在这里插入图片描述
将注释取消,yes改为no

改完重启ssh服务
systemctl restart sshd

6.禁止使用root远程登录

配置文件:
/etc/ssh/ssh_config
在这里插入图片描述
将注释取消,yes改为no

重启sshd服务
systemctl restart sshd

7.修改ssh服务默认端口、限制ssh监听IP

(1).修改默认端口

vim /etc/ssh/sshd_config
Port 22 —>59527
port一般是注释的,解除就行。

重启sshd服务。
连接的时候ssh xxx@xxx.xxx.xxx.xxx 59527就行
nmap这时候都扫描不到59527了
因为nmap只扫描常用端口

(2).限制ssh监听IP

有些服务器安全级别很高,不允许使用外网直接登录,只有通过局域网才能登录,可以在机房中设置其中一台服务器能够被往外连接,其他的主机都通过这个及其进行远程连接即可。

配置文件:
/etc/ssh/sshd_config
ListenAddress xxx.xxx.xxx.xxx
默认是0.0.0.0,所有IP监听。
重启sshd服务即可,此IP就无法登录了。

8.ssh其他相关命令

scp
安全的远程文件复制命令
Linux下进行远程拷贝文件命令,类是cp,只是scp是加密的,所以会稍微影响速度,但scp不占资源,不会提高多少系统负载

scp /root/mysql.dmp root@192.168.1.5:/tmp
-p可以加端口

scp 本地文件 用户名@服务器IP:目录

scp 用户名@服务器IP:目录 本地文件
也可以从其他服务器复制过来
需要输入对方服务器密码
在这里插入图片描述

如果中途有报错
在这里插入图片描述
这类ECDSA主机密钥已更改问题,但是又没设置密钥,可以直接在本地主机上,家目录的.ssh目录下找到known_hosts文件,将其中的密钥内容删除即可。

sftp
安全的文件传输协议
和ftp有着几乎一样的功能,但使用了加密/解密技术,所以比ftp更安全。但传输效率也低得多。

sftp 用户名@服务器IP
会要求输入服务器IP的密码
然后进入sftp交互界面
在这里插入图片描述

help,可以查看所有交互命令
pwd,连接服务器的路径
lpwd,自己本机当前所在路径
cd,切换连接端目录
lcd,切换本机端目录
lls,查看本极端目录
ls,查看连接端目录
put,将本机端中的指定文件上传至连接端,例:put /root/123.txt /tmp
rm,删除掉连接端的指定文件
quit,退出交互模式

sftp -oport=53527 root@xxx.xxx.xxx.xxx
可以指定端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值