Linux环境下实现SSH远程管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux环境下实现SSH远程管理相关的知识,希望对你有一定的参考价值。

what 什么是SSH?

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


why 为什么要学习SSH,它与其他远程协议的区别在哪里?

SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的TELNET、RSH、PCR远程应用相比,SSH协议提供了更好的安全性。


where SSH适合应用在哪里?

基于C/S架构,适合以部署OpenSSH服务器和客户端,实现远程连接、控制、复制等功能。


how? 如何部署并实现其功能?

一、配置OpenSSH服务端

    在RHEL6系统中,OpenSSH服务器由openssh、openssh-server等软件包提供(默认已经安装好),并已将sshd添加为标准的系统服务。

    sshd服务的配置文件是/etc/ssh/sshd_config,正确的调整相关配置,可以提高sshd远程登录的安全性。

    rpm -q openssh openssh-server        //查看这两个软件包是否安装

    service sshd status        //sshd是openssh的默认系统服务查看是否运行


    1,服务监听选项

    sshd服务的默认端口号是22,建议更改此端口号并制定监听服务的具体IP地址,以提高安全性。

    vim  /etc/ssh/sshd_config        //默认的配置文件

    <文件中的内容>

    port    22        //监听的端口

    ListenAddress 192.168.100.2        //监听的地址为192.168.100.2

    Protocol 2        //使用SSH V2版本,更加安全

    ..........        //省略部分内容

    UseDNS no        //禁用dns反向解析,提高处理速度

    ..........        //省略部分内容

    </文件中的内容>

    service sshd reload        //重新加载服务


    2,用户登录控制

    sshd服务默认允许root用户登录,不安全。建议先以普通用户远程登录,再以su命令切换root用户。

    vim  /etc/ssh/sshd_config        //默认的配置文件

    <文件中的内容>

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

    PermitRootLogin  no        //禁止root用户登录

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

    PermitEmptyPasswords no        //禁止空密码登录

    AllowUsers  zhangsan  [email protected]        //允许哪些用户登录,多个用户使用空格隔开

    DenyUsers  wangwu  [email protected]        //拒绝哪些用户不能登录,多个用户使用空格隔开

    ......        //省略部分内容  

    </文件中的内容>

    service sshd reload        //重新加载服务

   !! 注意允许和拒绝不能同时使用!!

    上述是指允许zhangsan从任何地点登录,admin只能从192.168.100.2进行登录

    上述是指拒绝wangwu从任何地方进行登录,lisi仅拒绝从192.168.100.125登录其他地方可以登录


    3,登录验证方法

    sshd服务支持两种验证方法——密码验证,密钥对验证。当密码、密钥对同时启用时,优先使用密钥对验证。

    vim /etc/ssh/sshd_config

    <文件中的内容>

    PasswordAuthentication  yes        //启用密码验证

    PubkeyAuthentication    yes        //启用秘钥对验证

    AuthorizedKeysFile  .ssh/authorized_keys        //指定公钥库数据文件位置以及默认的名字

    ......        //省略部分内容

    </文件中的内容>

    service sshd reload        //重新加载服务

    其中,公钥文件用来保存个客户机上传的公钥文本,以便与客户机本地的私钥文件进行匹配验证。之后我们再来讲解如何创建公钥私钥


二,使用SSH客服端程序

    在rhel6系统中(centos6)openssh客户端有openssh-client软件包提供(默认已经安装),其中包括ssh远程登录命令,以及scp、sftp远程复制文件和传输的命令。实际上任何支持SSH协议的客户端都可以与openssh服务进行通信,如windows 平台的xsheel secureCRT等图形工具。

    

    1,命令程序 ssh、scp、sftp

    (1.1)ssh远程登录

    命令格式 :    ssh  登录用户@目标主机地址

    通过ssh命令可以远程登录sshd服务,为用户提供一个安全的shell环境,以便对服务器进行管理和维护,使用时应指定登录用户,目标主机地址作为参数地址。我们来通过linux客户端以admin用户进行登录到192.168.100.2这台web服务器上进行操作。

使用命令:ssh [email protected]

技术分享


    第一次登录的时候会提示是否接受秘钥输入yes,之后在输入登录用户的密码,接收的秘钥信息将保存到~/.ssh/known_hosts文件中(客户端本地)

    之后使用whoami 查看一下当前的登录用户是不是远程服务器的系统用户。

技术分享


    如果监听的端口不是默认的22号端口(如2345)则登录的时候需要指定端口号

使用命令:ssh -p2345 [email protected]

技术分享


    (1.2)scp远程复制

    命令格式:

    scp 用户名@目标ip:文件位置  本地文件位置     //将远程主机的文件复制到本地

    scp 本地文件 用户名@目标ip:文件位置        //将本地文件复制到远程主机

使用命令:scp -p2345 [email protected]:/etc/passwd  /root

    //通过2345端口,将远程主机的/etc/passwd文件复制到本地

技术分享

使用命令:scp -P2345 -r /boot/grub/grub.conf [email protected]:/opt

    //通过2345端口,将本地/boot/grub/grub.conf复制到远程主机

技术分享


    2,图形工具Xshell

    xsheel是一款强大的终端模拟软件支持telnet、ssh、sftp等协议,可方便的管理远程主机。

    在www.xsheel.com可以进行下载,下载安装完成之后可以进行管理任务。

    下图就是xshell的管理界面,支持部分中文。

技术分享

本文出自 “新起点” 博客,请务必保留此出处http://yuanshuai.blog.51cto.com/10539781/1749211

以上是关于Linux环境下实现SSH远程管理的主要内容,如果未能解决你的问题,请参考以下文章

无公网IP,SSH远程连接Linux CentOS服务器内网穿透

Linux SSH下安装Java并设置环境

Linux-两种ssh远程执行命令方式加载环境变量区别

linux下配置ansible

如何使用python实现远程登录到linux再远程登录到另一个linux

Linux中远程访问及控制