SSH远程管理

一、SSH介绍

SSH(Secure Shell) 是一种安全的通道协议,主要用来实现字符界面的远程登录、远程复制等功能。

软件:openssh、openssh-server等(默认已安装)

服务名称:sshd

端口:默认端口是22

服务端主程序:/usr/sbin/sshd

服务端配置文件:/etc/ssh/sshd_config

1.服务监听选项

[[email protected] ~]# vi /etc/ssh/sshd_config

……

Port 22                        //监听端口号为22

Protocol 2                     //使用SSH V2协议

ListenAddress 192.168.4.254    //监听地址为192.168.4.254

UseDNS no                      //禁用DNS方向解析(提高服务器的响应速度)

……

注意:为了提高安全性,监听端口和监听地址可以根据需求进行修改。

2.用户登录控制

[[email protected] ~]# vi /etc/ssh/sshd_config

……

PermitRootLogin no             //禁止root用户登录

PermitEmptyPasswords no        //禁止空密码用户登录

LoginGraceTime 2m              //登录验证时间为2分钟

MaxAuthTries 6                 //最大重试次数为6

……

注意:sshd服务默认允许root用户登录(不安全),普遍做法:先以普通用户远程登入,进入安全的shell环境后,根据实际需要可以使用su 命令切换root用户。

AllowUsers  jerry  [email protected]          //只允许jerry和admin用户登录,且admin用户仅能够从IP地址                                                    为61.23.24.25的主机远程登录。

注意:当希望只允许或禁止某些用户登录时,可以使用AllowUsers或DenyUsers配置,两者用法类似,但不能同时使用。

3.登录验证方式

[[email protected] ~]# vi /etc/ssh/sshd_config

……

PasswordAuthentication  yes                     //启用密码验证

PubkeyAuthentication  yes                       //启用密钥对验证

AuthorizedKeysFile  .ssh/authorized_keys        //指定公钥数据文件

密码验证:以服务器中本地系统用户的登录名称、密码进行验证。

密钥对验证:要求提供相同匹配的密钥信息才能通过,创建方式主要有三步。

注意:密码验证使用方法简单,但是不安全,对于安全性较高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可以启用,服务器优先使用密钥对验证。

3.SSH客户端程序(密码验证)

软件包:openssh-clients(默认已安装)

ssh命令 —— 远程安全登录

格式:ssh  [email protected]

scp命令 —— 远程安全复制

格式1:scp  [email protected]:file1  file2            //下行

格式2:scp  file1  [email protected]:file2            //上行

sftp命令 —— 安全FTP上下载

格式:sftp  [email protected]           //与FTP类似

注意:任何支持SSH协议的客户端程序都可以与OpenSSH服务器进行通信,如windows平台中的Xshell、SecureCRT、Putty等。

 

4.密钥对验证的SSH体系

(1)在客户端创建密钥对

[[email protected] ~]$ ssh-keygen -t rsa//在客户机为用户zhangsan生成密钥对

Generating public/private rsa key pair.

Enter file in which to save the key (/home/zhangsan/.ssh/id_rsa):

//指定私钥位置

Enter passphrase (empty for no passphrase):             //设置私钥短语

Enter same passphrase again:                            //确认所设置的短语

Your identification has been saved in /home/zhangsan/.ssh/id_rsa.

Your public key has been saved in /home/zhangsan/.ssh/id_rsa.pub.

……

注意:在指定私钥存放位置时,一般直接回车,默认位置为宿主目录下的.ssh文件夹下;

私钥短语对私钥文件进行保护,当使用该私钥验证登录时必须正确提供此处所设置的短语。如果,直接回车不设置私钥短语,可以实现无口令登录,相比较安全性稍差。

(2)将公钥文件上传至服务器

[[email protected] ~]$ scp ~/.ssh/id_rsa.pub [email protected]:/tmp///上传方法随意

(3)在服务器导入公钥文本

[[email protected] ~]# mkdir -p /home/lisi/.ssh/

[[email protected] ~]# cat /tmp/id_rsa.pub  >>  /home/lisi/.ssh/authorized_keys

注意:这里用来远程登录的账号是lisi,所以先在lisi的宿主目录中创建.ssh文件夹,然后将用户zhangsan的公钥追加到该文件夹下的authorized_keys文件中。

二、TCP Wrappesr访问控制

TCP Wrappers将其他的TCP服务程序“包裹”起来,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。

1.访问控制策略的配置文件

/etc/hosts.allow        //允许个别,拒绝所有,需要在hosts.deny中设置ALL:ALL

/etc/hosts.deny         //允许所有,拒绝个别

2.策略配置格式

服务器程序列表:客户机地址列表

服务列表--ALL:代表所有服务

单个服务程序

多个服务程序,用逗号分隔

客户机地址列表--ALL:代表任何客户机地址

LOCAL:代表本机地址

单个IP地址

网络段地址:如192.168.4.  或者 192.168.4.0/255.255.255.0

以”.”开始的域名,如”.benet.com”,匹配benet.com域中所有主机。

多个地址以逗号分隔

允许使用通配符 ? 和 *

3.策略的应用顺序

先检查hosts.allow,找到匹配则允许访问。

否则再检查hosts.deny,找到则拒绝访问。

若两个文件中均无匹配策略,则默认允许访问。

实验案例:

某公司的电子商务站点由站门的网站管理员进行配置和维护,并需要随时从Internet进行远程管理。考虑到易用性和灵活性,在web服务器上启用OpenSSH服务,同时基于安全性考虑,需要对SSH登录进行严格的控制。

需求描述:

允许用户wzadm从任意地址登录,采用密钥对验证

允许用户jacky从主机192.168.3.110登录

禁止其他所有用户远程登录

环境拓扑如下:

1.准备实验环境

一共四台电脑,一台internet测试机,一台网站服务器,一台网关服务器(添加两块网卡),使用真机做网管工作站。

(1)正确配置各主机的网络参数(IP地址、子网掩码、默认网关),网关服务器的内网卡使用vm1,ip地址是192.168.1.254,外网卡使用vm8,ip地址是218.29.30..31,Internet测试机ip地址是218.29.30.218,网卡vm8,配置网关指向218.29.30.31,网站服务器的地址是192.168.1.1,网卡vm1,网关指向192.168.1.254。

(2)在linux上配置网关的临时方式例如:route add default gw 192.168.1.254

(3)在网关服务器上开启路由转发。

echo “1” > /proc/sys/net/ipv4/ip_forward                //临时开启路由功能

修改/etc/sysctl.conf文件                    //永久开启路由功能

net.ipv4.ip_forward = 1

修改完毕后执行sysctl -p执行,让sysctl.conf配置文件即使生效。

(4)测试内外网之间可以ping通

(5)在网站服务器上添加测试用户jacky、wzadm,并设置好密码。

2、创建密钥对文件,分发公钥

(1)在Internet测试用机218.29.30.218上创建SSH密钥对文件。

[[email protected] ~]# ssh-keygen -t rsa

(2)将其中的公钥文件发送给网站Web服务器(使用FTP等任何方式)。

3、配置OpenSSH服务端

(1)在网站服务器中,开启SSH密钥对验证、密码验证,并限制登录用户。

[[email protected] ~]# vi /etc/ssh/sshd_config

…… //省略部分内容

PermitRootLogin no

AllowUsers [email protected] wzadm

PasswordAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_key

[[email protected] ~]# service sshd reload

(2)将客户机发过来的公钥文本导入wzadm用户的公钥数据库。

[[email protected] ~]# mkdir -p /home/wzadm/.ssh/

[[email protected] ~]# cat id_rsa.pub >> /home/wzadm/.ssh/authorized_keys

(3)锁定用户账号wzadm,以禁止其直接使用口令验证。

[[email protected] ~]# passwd -l lisi

Locking password for user lisi.

passwd: Success

4、验证实验结果

(1)使用jacky的用户名/密码,可以从主机192.168.3.110远程登录网站服务器。

(2)使用wzadm的用户名/密码,在任何主机中均无法远程登录网站服务器。

(3)在生成密钥对的主机中,使用wzadm的用户名、验证私钥短语后可以登录网站服务器。(4)使用root用户或其他用户(如wangwu),无法远程登录网站服务器。

时间: 2024-10-12 03:30:02

SSH远程管理的相关文章

SSH远程管理、参数讲解、xshell使用、scp,sftp,ssh命令(ssh两种方式的密钥验证方

1.SSH远程管理 SSH(Secure Sheel)是一种安全通道协议,主要用于实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户的口令.与早期的TELNET(远程登录,tcp23端口).RSH(Remote Sheel,远程执行命令).RCP(Remote File Copy,远程文件复制)等应用想必,SSH协议提供了更好的安全性. 配置OpenSSH服务端(由openssh.openssh-server软件包提供.主配置文件/etc/ssh/

Linux服务器ssh远程管理

SSH远程管理 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登陆,远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆时输入的用户口令,与早期的telnet(远程管理),rsh(Remote Shell ,远程执行命令),rcp(远程复制文件)等应用相比,SSH协议提供了更好的安全性. 配置OpenSSH服务端 在RHEL 5系统中,OpenSSH服务器由openssh,openssh-server等软件包提供(默认已安装),并已将s

SSH远程管理服务

作者:Georgekai 归档:学习笔记 2018/1/29 SSH远程管理服务 1.1 SSH服务介绍说明 Secure shell protocol--安全的shell协议 SSH:先对要传输的数据包进行加密处理,然后在进行数据传输,确保了数据的安全 telnet:用于远程连接控制,但不对数据传输进行加密 1.1.1 SSH服务主要提供的两个功能: 1. 远程连接 2. 远程文件传输:如sftp 1.1.2 SSH连接排错思路 1. ping 172.16.1.41 traceroute 1

Linux SSH远程管理故障如何排查?

Linux SSH远程管理故障如何排查? SSH远程管理故障排查方案: 1.检测两个机器是否畅通 两个机器之间是否畅通,查看物理链路是否有问题(网线网卡.IP是否正确) 第1步:物理链路是否畅通,比喻为"高速公路是否畅通" ping 排查客户端到服务端的线路问题,ping是常用的网络连通性检查工具 tracert -d 路由追踪命令,-d是不进行反向解析 C:\Users\Administrator>ping 10.0.0.8 正在Ping 10.0.0.8 具有32 字节的数据

Linux(11):期中架构(3)--- SSH远程管理服务 & ansible 批量管理服务

SSH远程管理服务 1. 远程管理服务知识介绍 # 1.1 SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定: 在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输.确保了传递的数据安全. SSH是专为远程登录会话和其他网络服务提供的安全性协议. 利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中, 绝大多数企业普遍

SSH远程管理服务实战

目录 SSH远程管理服务实战 1.SSH基本概述 2.SSH相关命令 3.Xshell连接不上虚拟机 4.scp命令 5.sftp命令 6.SSH验证方式 7.SSH场景实践 8.SH安全优化 9.交互expect[扩展] 10.免交互sshpass[扩展] SSH远程管理服务实战 1.SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务2.对传输的数据进行加密 那么

Linux环境下实现SSH远程管理

what 什么是SSH? SSH(Secure Shell)是一种安全通信协议,主要用来实现字符界面的远程登录.远程复制等功能.OpenSSH是实现SSH协议的开源项目 why 为什么要学习SSH,它与其他远程协议的区别在哪里? SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令.与早期的TELNET.RSH.PCR远程应用相比,SSH协议提供了更好的安全性. where SSH适合应用在哪里? 基于C/S架构,适合以部署OpenSSH服务器和客户端,实现远程连接.控

SSH远程管理OpenSSH使用

SSH(secure shell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能.SSH协议对于通信双方的数据传输进行了加密处理,其中包括你用户登录时输入的用户口令.与早期的telnet远程登录.RSH远程执行命令.RCP远程文件复制等应用相比,SSH协议提供了更好的安全性. OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX.Linux操作系统.关于Openssh项目的更多内容可以访问其官网http://www.openssh.com. Openssh是一种典

ssh远程管理服务配置

##sshd远程连接的优化 版主QQ:2559721591    资料网站:http://rshare.ys168.com 网络环境: ssh服务器(虚拟机):192.168.10.25 ssh客户机(物理机):192.168.10.1 ssh:是安全的外壳的缩写(Secure Shell).是专门为远程登录会话和其他网络服务提供安全性的协议. linux的ssh远程登录软件:openssh,默认端口是22. 显示远程连接过程:ssh  -v  [email protected] #软件安装 y