文档章节

Linux服务器ssh远程管理

 如风达
发布于 2015/02/09 14:43
字数 3767
阅读 10
收藏 0
点赞 0
评论 0


SSH远程管理

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登陆,远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆时输入的用户口令,与早期的telnet(远程管理),rsh(Remote Shell ,远程执行命令),rcp(远程复制文件)等应用相比,SSH协议提供了更好的安全性。

 

  1. 配置OpenSSH服务端

在RHEL 5系统中,OpenSSH服务器由openssh,openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。执行"service sshd start"命令即可按默认配置启动sshd服务,包括root在内的大部分用户(只要拥有合法的登陆Shell)都可以远程登陆系统。

Sshd服务的配置文件默认位于/etc/ssh/sshd_config,正常调整相关配置项,可以进一步提高sshd远程登陆的安全性。下面介绍最常用的一些配置项,关于sshd_config文件的更多配置可参考man手册页。

1. 服务监听选项

    Sshd服务使用的默认端口好为22,必要时建议修改此端口号,并指定监听服务的具体ip地址,以提高在网络中的隐蔽性,除此之外,SSH协议的版本选用V2比V1的安全性更好,禁用DNS反向解析可以提高服务器的响应速度。

修改配置文件后需要重新加载文件:service sshd reload

服务器默认配置如下

2.用户登陆控制

    Sshd服务默认允许root用户登陆,当在linternet中使用时这是非常不安全的,更普遍的做法是,先以普通用户远程登入,进入安全Shell环境后,根据实际需要使用su命令切换为root用户。

    关于sshd服务的用户登陆控制,通常应禁止root用户或密码为空的用户登陆,另外可以限制登录验证的时间(默认为2分钟)和最大重试次数,若超过限制后仍未能登陆则断开连接。

    当希望之允许或禁止某些用户登陆时,可以使用AllowUsers或DenyUsers配置,两者用法类似(注意不要同时使用)。例如:若只允许jerry和admin用户登陆,并且admin用户仅能够从ip地址为61.23.24.25的主机远程登陆,可以参考以下操作。

AllowUsers jerry admin@61.223.24.25 //多个用户以空格分隔

 

3.    登陆验证方式

    对于服务器的远程管理来说,除了用户账号的安全控制以外,登陆验证的方式也非常重要,sshd服务支持两种验证方式——密码验证,密钥对验证。可以设置只使用其中以正方式,也可以两种方式都启用。

  • 密码验证:以服务器中本地系统用户的登录名称,密码进行验证。这种方式使用最为简便,但冲客户机角度来看正在连接的服务器有可能被冒充,从服务器角度看当遭遇密码穷举(暴力破解)攻击时防御能力比较弱。

  • 密钥对验证:要求提供相匹配的密钥信息才能通过验证,通常先在客户机中创建一对密钥文件(公钥,私钥),然后将公钥文件放到服务器中的指定位置,远程登陆时,系统将使用公钥,私钥进行加密/解密关联验证,大大增强了远程管理的安全性。

    当加密验证,密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求比较高的服务器,建议将密码验证方式禁用,只允许密钥对验证方式;若没有特殊要求,则两种方式都可以启用。

 

Service sshd reload 同样需要重新加载配置文件即可生效。

5.1.2     使用SSH客户端程序

    在RHEL 5系统中,OpenSSH客户端由openssh-cliente软件包提供(默认已安装),其中包括ssh远程登录命令,以及scp,sftp远程复制和文件传输命令等,实际上,任何支持SSH协议的客户端程序都可以与OpenSSH服务器进行通信,例如:windows平台中的PuttyCN,WinSCP,SecureCRT等图形工具。

注意:如果默认端口22被改为其它端口,使用时应以上选项指定端口号。

  1. 命令程序ssh ,scp ,sftp

1)ssh远程登陆

    通过ssh命令可以远程登录到sshd服务,为用户提供一个安全的Shell环境,以便对服务器进行管理和维护。使用时应指定登陆用户,目标主机地址作为参数。例如:若要登陆主机192.168.4.254,以对方的tsergyia用户进行验证,可以执行以下操作。

Ssh tsergyia@192.168.4.254

Yes //接受密钥

123456 //输入用户密码

    当用户第一次登录SSH服务器时,必须接受服务器发来的RSA密钥(根据提示输入yes)后才能继续验证,接收的密钥信息将保存到~/.ssh/known_hosts文件中(保存在客户机中),密钥验证成功以后,就登陆到目标服务器的命令环境中了,就好比把客户机的显示器,键盘连接到服务器上一样。

Whoami //确认当前用户

/sbin/ifconfig eth0 //确认是否是服务器ip地址

    如果sshd服务器使用了非默认的端口号(如2345),则在登录时必须通过"-p"(小写)选项指定端口号。例如:一下操作将访问主机192.168.4.22的2345端口,以对方为jerry用户验证登录。

Ssh -p 2345 jerry@192.168.4.22

 

2)scp远程复制

    通过scp命令可以利用SSH安全连接与远程主机相互复制文件,使用scp命令时,除了必须指定复制源,目标以外,还应指定目标主机地址,登录用户,执行后提示验证口令即可。例如:以下操作分别演示了下行,上行复制的操作过程,将远程主机中的/etc/passwd文件复制到本机,并将本机的/etc/vsftpd/目录复制到远程主机。

下行:Scp root@192.168.4.254:/etc/passwd(源) /root/pwd254.txt(目的)

注意:目标主机用户root(要允许ssh登录),(注意root用户要有读取权限)

上行:scp -r(目录) /etc/vsftpd/(源) root@192.168.4.254:/opt/(目的)

注意:用户还是远程主机用户,要能有写入权限

 

3)sftp安全FTP

    通过sftp命令可以利用SSH安全连接与远程主机上传,下载文件,采用了与FTP类似的登录过程和交互式环境,便于目录资源管理。例如:以下操作依次演示了sftp登录,浏览,文件上传等过程。

Sftp root@192.168.4.244 //登陆

Ls //查看(远程主机)

!ls //查看(bending客户机)

Put(或mput) /boot/config-2.3.18-194.el5 //上传文件

Get(或mget)                              //下载文件

Bye                                             //退出

 

  1. 图形工具PuttyCN,WinSCP

1)PuttyCN远程登陆

    Putty是一款瓶盖的Telnet/SSH图形客户端软件,能够在windows 32平台模拟xterm终端环境,主要作品为Simon Tatham,PuttyCN是对应的中文版。

    使用PuttyCN时,只需运行主程序putty.exe,然后再窗口中指定远程主机的ip地址,端口号等相关信息,如下图所示,再单击"打开"按钮,根据提示接受密钥,验证密码后即可成功登录到目标主机。

步骤一:输入目标服务器的ip地址,端口号连接类型,点击"打开"

步骤二:在弹出的窗口中单击"是",表示接受密钥

步骤三:输入远程服务器的用户名和密码,验证成功后即可登录。

 

2)WinSCP远程复制

    Winscp是一款用于widnows平台的SSH图形客户端软件,用来通过SCP,SFTP方式在本地与远程计算机之间安全的复制文件。WinSCP的官方网站位于http://winscp.net,建议下载.zip格式的免安装包。

    使用WinSCP时,只需要运行主程序WinSCP.exe。然后在窗口中指定远程主机的ip地址,端口号等相关信息,如下图所示,再单击"登录"按钮,根据提示接受密钥,验证密码后即可成功连接到目标主机,操作界面与常见的FTP客户软件类似。

    由于PuttyCN,WinSCP都提供了中文界面,功能和操作比较简单,因此这里不再对着两款软件做深入研究。

 

5.1.3 构建密钥对验证的SSH体系

    正如前面所提及的,密钥对验证方式可以为远程登录提供更好的安全性,下面将学习在linux服务器,客户端中构建密钥对验证SSH体系的基本过程,如图所示。

  1. 在客户端创建密钥对

    在linxu客户机中,通过ssh-keygen工具为当前用户创建密钥对文件,可用的加密算法为RSA或DSA("ssh-keygen"命令的"-t"选项用于指定算法类型)。例如:以zhangsan用户登录到客户机,并生成基于RSA算法的SSH密钥对(公钥。私钥)文件,操作如下:

    Ssh-keygen -t rsa

    ---------------------------------.//指定私钥位置

    --------------------------------//设置私钥短语

    -------------------------------//确认所设置的短语

        上述操作过程中,提示指定私钥文件的存放位置时,一般直接按Enter键即可,最后生成的私钥,公钥文件默认存放在宿主目录中的隐藏文件夹.ssh/下,私钥短语用来对私钥文件进行保护,当使用该私钥验证登录时必须正确提供此处所设置的短语。尽管不设置私钥短语也是可以的(实际无口令登陆),但从安全假赌考虑不建议这么做。

    Ls -lh ~/.ssh/id_rsa* //确认生成的密钥文件

    新生成密钥对文件中,id_rsa是私钥文件,权限默认为600,对于私钥文件必须妥善保管,不能泄露给他人,id_rsa.pub是公钥文件,用来提供给SSH服务器。

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

将上一步的公钥文件发送给服务器,并部署到服务器端用户的公钥数据库中。上传公钥文件时可以选择FTP,samba,HTTP甚至发送E-mail等任何方式,例如:可以通过scp方式将文件上传至服务器的/tpm/目录中。

Scp ~/.ssh/id_rsa.pub root@192.168.4.254:/tmp/(用户能够登陆ssh)

3.在服务器中导入公钥文本

    在服务器中,目标用户(指用来远程登录的账号)的公钥数据库位于~/.ssh/目录,默认的文件名是authorized_keys。当获得客户机发送过来的公钥文件以后,可以通过重定向将公钥文本内容追加到目标用户的公钥数据库中。

权限更改:chown lisi:lisi .ssh/

            Chmod 700 .ssh/

    在公钥库authorized_keys文件中,最关键的内容是"ssh-rsa加密字串"部分,当导入非ssh-keygen工具创建的公钥文本时,应确保此部分信息完整。

    由于sshd服务默认采用严格的权限测试模式,因此还需要注意公钥库文件authorized_keys的权限——要求是登录的目标用户或root,同组或其他用户对该文件不能有写入权限,否则可能无法成功使用密钥对验证

    除此之外,应该确认sshd服务支持密钥对验证方式,具体参考上述登录验证方式设置。

还有一种方法:

    在客户机操作

    端口必须为22,操作完以后可以更改。

ssh-copy-id -I /root/.ssh/id_rsa.pub zhangsan@192.168.4.254

注释:意思是zhangsan用户也用lisi在客户机上生成的(公钥和私钥)登录同一台服务器,可使用此方式。

 

4.在客户端使用密钥对验证

当私钥文件(客户端),公钥文件(服务器)均部署到位以后,就可以在客户机中进行测试了,首先确认客户机中当前的用户为zhangsan,然后通过ssh命令以服务器端用户lisi的身份进行远程登录,如果密钥对验证方式配置成功,则在客户端将会要求输入私钥短语,以便调用私钥文件进行匹配(若未设置私钥短语,则直接登入目标服务器)

使用密钥对验证的方式登录时,不需要知道目标用户的密码,而是改为验证客户端用户的私钥短语并检查双方的私钥,公钥文件是否配对,安全性更好。

 

 

  1. TCP Wrappers访问控制

TCP Wrappers机制的保护对象为各种网络服务程序,针对访问服务的客户机地址进行访问控制,对应的两个策略文件为/etc/hosts.allow,/ect/deny,分别用来设置允许和拒绝的策略。

 

  1. 策略的配置格式

    两个策略文件的作用相反,但配置记录的格式相同,如下所示。服务程序列表,客户机地址列表之间以冒号分割,在每个列表内的多个项之间以逗号分隔。

    1. 服务程序列表

  • ALL,代表所有的服务

  • 单个服务程序。例如:"vsftpd"

  • 多个服务程序组成的列表,例如"vsftpd , sshd"

  1. 客户机地址列表

  • All,代表任何客户机地址

  • Local,代表本地地址

  • 单个ip地址,例如:"192.168.4.1"

  • 网络地址,例如:192.168.4.0/255.255.255.0或192.168.4.

  • 以"."开始的域名,例如".benet.com"匹配benet.com域中的所有主机

  • 潜入通配符"?"号代表一个字符 *代表多个字符

 

  1. 访问控制的基本原则

关于TCP Wrappers机制的访问策略,应用时遵循以下顺序和原则

  • 首先检查/etc/hosts.allow文件,如果找到匹配的策略,则允许访问。

  • 否则则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝

  • 如果检查上述两个文件都找不到相匹配的策略,则允许。

  • 如果连个文件中都匹配,hosts.allow生效

 

  1. TCP Wrappers 配置实例

例如:若只希望从ip地址为61.23.24.25的主机或者位于192.168.2.0/24网段的主机访问sshd服务,其他所有地址将被拒绝,可以执行以下操作。

Vim /etc/hosts.allow

Sshd:61.23.24.25,192.168.2.*

Vim /etc/hosts.deny

Sshd:ALL

 

补充:在windows 7系统中安装PuttyCN客户端,并使用密钥对验证的方式登录远程的SSH服务器(密钥转换)

步骤一:使用winscp工具将私钥复制到win 7上

步骤二:使用puttygen工具转换私钥——load——在文档中*.*——save private key

步骤三:putty登录——在左侧ssh中——auth——选择私钥文件——open

步骤四:输入用户名登录


本文转载自:

共有 人打赏支持
粉丝 7
博文 141
码字总数 22313
作品 0
深圳
开启SUSE Linux的SSH密码登陆

开启SUSE Linux的SSH密码登陆 [日期:2017-10-11] 来源:Linux社区 作者:neverinit [字体:大 中 小] 一般来说,刚安装好的SUSE Linux系统默认是可以使用ssh2登陆的,但是不能使用ssh密码登...

rootliu ⋅ 05/09 ⋅ 0

ssh隧道转发内网穿透功能实现(反弹式木马原理)

一、ssh说明 SSH(secure shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境(这点很重要);SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。人...

dyc2005 ⋅ 04/21 ⋅ 0

如何利用Struts2漏洞绕过防火墙获取Root权限

  本文我要分享的是关于Apache struts2 CVE-2013–2251漏洞的,由于该漏洞可以导致远程代码执行,曾一度被广泛滥用。该漏洞原理在于,通过操纵前缀为“action:”/”redirect:”/”redirec...

FreeBuf ⋅ 05/17 ⋅ 0

设置基于Web的Guacamole(鳄鱼)工具以访问远程Linux / Windows计算机

作为系统管理员,你会发现自己(现在或将来)的环境下Windows和Linux共存工作。 这不是秘密,一些大公司喜欢(或必须)在Windows机箱和其他Linux服务器上运行他们的一些生产服务。 如果是这样...

yzy121403725 ⋅ 05/31 ⋅ 0

Centos6.9系统部分基础优化(更新时间2018/04/19)

系统信息: 更改yum源 关闭SELinux 关闭iptables 精简开机自启动服务 提权abc可以sudo 时间同步 加大文件描述 内核优化 下载安装系统基础软件 更改SSH服务器远程登录的配置(选择性修改,自己...

Linux_yk ⋅ 03/10 ⋅ 0

CentOS7的SSH免秘钥认证

应用场景: 作为运维,经常会遇到批量管理Linux服务器,为了免去输入远程服务器的账号密码苦恼,可使用SSH的免秘钥登录 解决方案: (1)生成密钥对 ssh-keygen -t dsa -f ~/.ssh/id_rsa -P ...

hbgslz ⋅ 06/13 ⋅ 0

50.本地VMware环境虚拟机的异地(Azure)容灾(上)

首先还是需要提前完成准备工作《异地(Azure)容灾-准备工作》 要实现VMware虚拟化平台的虚拟机的异地Azure容灾需要检查下先决条件: VMware平台至少是vCenter Server 6.5、6.0、5.5 或 vSph...

ZJUNSEN ⋅ 05/11 ⋅ 0

NetHunter和花生壳实现SSH远程访问内网安卓手机

  *本文作者:2benben,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。   关键词: 内网穿透, 端口映射, SSH协议, 花生壳, Kali NetHunter      本文针对普通家庭内网用户,有条件...

FreeBuf ⋅ 06/11 ⋅ 0

Windows终端好难用? 试试git bash吧!

说起来有些滑稽, "如何在Windows终端使用Linux命令"是一个长盛不衰的问题, 在试过一些'Windows版的Linux命令行工具后", 我最终选择了 gitbash下载安装 下载完成后, 在桌面找到下面这个图标,...

木子昭 ⋅ 05/27 ⋅ 0

Linux 远程管理工具(XManager)

什么是 XManager Xmanager 是一款小巧、便捷的浏览远端 X 窗口系统的工具。在工作中经常使用 Xmanager 来登录远端的 Linux 系统,在 X 窗口系统上作图形化的操作。Xmanager 可以将 PC 变成 ...

u011012932 ⋅ 05/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部