openssh服务器端和客户端的配置及应用

做运维的过程中,远程连接是非常实用并且常用的的操作,而在众多的远程连接工具中,openssl工具的运用是相当广泛的,所以今天就给大家单独分享一下,关于这一块的一些知识,当然这是做好运维的必须掌握的,所以大家务必多加练习,以便于我们在实际生产中环境能更加便利的使用openssl做维护

1、ssh: secure shell, protocol, 22/tcp, 安全的远程登录

OpenSSH: ssh协议的开源实现

dropbear:另一个开源实现

SSH协议版本

v1: 基于CRC-32做MAC,不安全;man-in-middle

v2:双方主机协议选择安全的MAC方式

基于DH算法做密钥交换,基于RSA或DSA实现身份认证

两种方式的用户登录认证:

基于password

基于key

2、OpenSSH

C/S

C: ssh, scp, sftp

Windows客户端:

xshell, putty, securecrt, sshsecure,shellclient

S: sshd

3、ssh客户端

客户端组件:

ssh, 配置文件:/etc/ssh/ssh_config

Host PATTERN

StrictHostKeyChecking no 首次登录不显示检查提示

4、格式:ssh [[email protected]]host [COMMAND]

ssh [-l user] host [COMMAND]

-p port:远程服务器监听的端口

-b:指定连接的源IP

-v:调试模式

-C:压缩方式

-X: 支持x11转发

-Y:支持信任x11转发 ForwardX11Trusted yes

-t:  强制伪tty分配

ssh -t remoteserver1 ssh remoteserver2

5、允许实现对远程系统经验证地加密安全访问

当用户远程连接ssh服务器时,会复制ssh服务器/etc/ssh/ssh_host*key.pub(centos7.0默认是ssh_host_ecdsa_key.pub)文件中的公钥到客户机的~./ssh/know_hosts中。下次连接时,会比较两处是否有不同。

6、基于key认证

基于密钥的认证:

(1)在客户端生成密钥对

ssh-keygen -t rsa [-P ‘‘] [-f “/username/.ssh/id_rsa"]

#ssh-keygen –t rsa –P ‘’  -f “/username/.ssh/id_rsa”

(2)把公钥文件传输至远程服务器对应用户的家目录

ssh-copy-id [-i [identity_file]] [[email protected]]host

(3)测试

(4)在SecureCRT,Xshell或实现基于key验证

在SecureCRT工具—>创建公钥—>生成Identity.pub文件,转化为openssh兼容格式(适合SecureCRT,Xshell不需要转化格式),并复制到需登录主机上相应文件authorized_keys中,注意权限必须为600

在需登录的ssh主机上执行:ssh-keygen  -i -f Identity.pub >> .ssh/authorized_keys

(5)重设私钥口令:#ssh-keygen –p

7、验证代理(authentication agent)

   保密解密后的密钥

这样口令就只需要输入一次

在GNOME中,代理被自动提供

否则运行ssh-agent bash

钥匙通过命令添加给代理:ssh-add

8、scp命令

scp [options] SRC... DEST/

两种方式:

scp [options] [[email protected]]host:/sourcefile /destpath

scp [options] /sourcefile [[email protected]]host:/destpath

常用选项:

-C: 压缩数据流

-r: 递归复制

-p: 保持原文件的属性信息

-q: 静默模式

-P PORT: 指明remote host的监听的端口

9、rsync命令

基于ssh和rsh服务实现高效率的远程系统之间复制文件

使用安全的shell连接做为传输方式

rsync –av /etc server1:/tmp 复制目录和目录下文件

rsync –av /etc/  server1:/tmp 只复制目录下文件

比scp更快,只复制不同的文件

选项:

-n 模拟复制过程

-v 显示详细过程

-r 递归复制目录树

-p 保留权限

-t 保留时间戳

-g 保留组信息

-o 保留所有者信息

-l  把符号链接文件做为符号文件进行复制

-L 将软链接文件指向文件复制

-a 存档模式,相当于 –rlptgoD,但不保留ACL(-A)和SELinux属性( -X)

10、sftp命令

交互式文件传输工具

用法能和传统的ftp工具相似

利用ssh服务实现安全的文件上传和下载

使用ls cd mkdir rmdir pwd get put等指令,可用?获取帮助信息

sftp [[email protected]]host

sftp> help

11、SSH端口转发

SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH 的连接,也能够通过将 TCP 端口转发来使用 SSH 进行通讯

SSH 端口转发能够提供两大功能:

加密 SSH Client 端至 SSH Server 端之间的通讯数据

突破防火墙的限制完成一些之前无法建立的 TCP 连接

12、本地转发

-L localport:host:hostport sshserver

ssh –L  9527:server1:23 -N  server2

telnet 127.0.0.1 9527

当访问本机的9527的端口时,被加密后转发到server2的ssh服务,再解密被转发到server1:23

data<-->localhost:9527<-->localhost:XXXXX<-->server2:22<-->server2:YYYYY<-->server1:23

选项:

-f 后台启用

-N 不开远程shell

-g 启用网关功能

13、远程转发

-R sshserverport:host:hostport sshserver

ssh –R 9527:server1:23 –N  server2

让server2侦听9527端口的访问,如有访问,就加密后转发请求到本机ssh服务,再由本机解密后转发到serve1:23

Data<-->server2:9527<-->server2:22<-->ocalhost:XXXXX<-->localhost:YYYYY<-->server1:23

14、动态端口转发

当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问请求被转发到sshserver上,由sshserver替之访问internet

在本机firefox设置代理proxy:127.0.0.1:1080

#ssh -D 1080 [email protected]

15、X 协议转发

所有图形化应用程序都是X客户程序

能够通过tcp/ip连接远程X服务器

数据没有加密机,但是它通过ssh连接隧道安全进行

ssh -X [email protected] gedit

remotehost主机上的gedit工具,将会显示在本机的X服务器上

传输的数据将通过ssh连接加密

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

常用参数:

Port

ListenAddress ip

PermitRootLogin yes

ClientAliveInterval 0

UseDNS yes

限制可登录用户的办法:

AllowUsers user1 user2 user3

DenyUsers

AllowGroups

DenyGroups

17、ssh服务的最佳配置

1、不要使用默认端口

2、禁止使用protocol version 1

3、限制可登录用户

4、设定空闲会话超时时长

5、利用防火墙设置ssh访问策略

6、仅监听特定的IP地址

7、基于口令认证时,使用强密码策略

tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 | xargs

8、使用基于密钥的认证

9、禁止使用空密码

10、禁止root用户直接登录

11、限制ssh的访问频度和并发在线数

12、做好日志,经常分析

时间: 2024-10-24 05:02:35

openssh服务器端和客户端的配置及应用的相关文章

SVN1.6服务端和客户端安装配置指导

本节向大家描述SVN1.6服务端和客户端安装配置步骤,随着SVN的快速发展,版本也进行了升级更新,本节就和大家一起学习一下SVN1.6服务端和客户端安装配置步骤,欢迎大家一起来学习.下面是具体介绍.1.软件下载下载SVN1.6服务器程序.http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91[注意]如果之前已经安装了TortoiseSVN客户端,必须选择与之配套的SVN服务端版本,否则会出现各种问题,可以从Tor

【转】Android Https服务器端和客户端简单实例

转载地址:http://blog.csdn.net/gf771115/article/details/7827233 AndroidHttps服务器端和客户端简单实例 工具介绍 Eclipse3.7 Tomcat 6.0.18(免安装版) Android2.1开发环境(在Eclipse中配置好) 前提条件 JDK环境要使用我们自己安装的,笔者JDK安装目录为D:\Java\jdk1.6.0_22,在Eclipse的Window-preference-installedJREs中,只选用我们自己安

VisualSVN Server以及TortoiseSVN客户端的配置和使用方法

一.VisualSVN Server的配置和使用方法[服务器端] 好的,下面我来添加一个代码库[Repository],如下图: 按上图所示,创建新的代码库,在下图所示的文本框中输入代码库名称: 注意:上图中的CheckBox如果选中,则在代码库StartKit下面会创建trunk.branches.tags三个子目录:不选中,则只创建空的代码库StartKit. 点击OK按钮,代码库就创建成功了. 创建完代码库后,没有任何内容在里面.我会在这个教程的第二部分说明如何迁入源代码. 下面,我们开始

ubuntu下 openvpn客户端的配置

1.安装openvpn sudo apt-get install openvpn 2.配置openvpn 作为客户端,OpenVPN并没有特定的配置文件,而是由服务器提供方给出一个配置文件.对于认证,OpenVPN提供了两种认证方法:基于用户名/密码的认证与SSL证书认证.用户名/密码的认证方法无法(或较难)限制一个账号同时连接多个客户端,而采用证书,则可保证同一证书同一时间只能有 一个客户端连接.当然,这些都是由服务器端决定的,不需要客户端进行选择. 首先将OpenVPN服务器提供商发给你的配

客户端网络配置上的一点说明

这几天qq上很多朋友问及客户端网络配置问题,希望这篇文章能帮助一些朋友(之前也写过一篇文章关于用第三方工具连接数据库:http://blog.itpub.net/29876893/viewspace-1465317/).首先说明的是数据库是单实例,数据库的连接方式是专有连接模式. SQL> select * from v$version where rownum=1; BANNER ---------------------------------------------------------

(原创推荐文章)kerberos服务器端与客户端

#环境 两台装centos7的虚拟机即可. kerberos服务器端与客户端各一台 (本文档推荐使用Typora软件观看) # 1.kerberos服务器端配置 ## 1.1安装配置Kerberos Server ```bash[[email protected] ~]# yum install krb5-server krb5-libs krb5-auth-dialog -y[[email protected] ~]# vi /var/kerberos/krb5kdc/kdc.conf[kdc

实现服务器端与客户端的高频实时通信 SignalR(2)

说明:本篇文章与上篇文章 实现服务器端与客户端的实时通信 SignalR(1) 基本代码类似,只是做了些处理 高频 的改动. 一.本文出处:SignalR 实例介绍 (建议看原著里面有DEMO下载) 二.这篇文章介绍如何利用 VS2012 创建一个简单的实时高频反馈系统,建好后的样子如下:拖动某个窗口的红色框,其余窗口的红色框跟着运动. 三.Demo 创建 1.新建项目以及新建完成后的目录结构如上篇文章所示(项目名称为 MoveShape): 2.安装 SignalR 程序包,该包实现了服务端与

pushlet实现服务器端向客户端推送信息

使用Pushlet来实现服务器端向客户端推送信息 1.   实现方式: 有两种实现方式: 1.         通过配置文件来实现定时的从服务器端向客户端推送信息 2.         通过API主动向另外一端推送信息 以下分别给予介绍. 2.   特别注意 在开始测试之前,有三点非常重要,需要实现讲明,否则程序将会无法正常运行: 2.1.     JSP页面上的设定 JSP页面上必须添加以下代码以确保Pushlet能够正确的获得后台服务的地址: <base href="<%=req

centos 6.5环境利用iscsi搭建SAN网络存储服务及服务端target和客户端initiator配置详解

一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备.主机和客户机等之间的相互连接,并创建存储区域网