第1章 SSH基本概述

1.1 SSH服务协议说明

SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定

在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。

SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用 SSH 协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。

在默认状态下,SSH服务主要提供两个服务功能:

一是提供类似telnet远程联机服务器的服务,即上面提到的SSH服务。

另一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的.提供更安全的SFTP服务(vsftp,proftp)。

1.2 SSH远程服务主要功能

提供远程连接服务器的服务
对传输的数据进行加密

1.3 远程连接方式有哪些

ssh属于密文连接方式
监听在本地22/tcp端口
telnet属于明文连接方式 监听在本地23/tcp端口

1.4 ssh知识要点

ssh是安全的加密协议,用于远程链接linux服务器

ssh 默认端口是22,安全协议版本sshv2,出来2之外还有1(有漏洞)

ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务

linux ssh 客户端包括ssh 远程链接命令,以及远程拷贝scp命令

1.5 私钥和公钥

ssh实现安全链接建立,利用钥匙和锁头

1. 钥匙=私钥 锁头=公钥,私钥可以解密公钥

2. 公钥可以再网络中传输,私钥再本地主机保存

第2章 SSH相关命令

SSH是典型的客户端和服务端的交互模式, 客户端广泛的支持各个平台
WIndows有很多工具可以支持SSH连接功能, 建议使用Xshell

2.1 openssh软件分析

(与数据加密相关的软件--openssl)

[root@backup ~]# rpm -ql openssh-server

/etc/ssh/sshd_config    --- ssh服务配置文件

/usr/sbin/sshd          --- ssh服务进程启动命令

[root@backup ~]# rpm -ql openssh-clients

/usr/bin/scp            --- 远程拷贝命令

/usr/bin/sftp           --- 远程文件传输命令

/usr/bin/slogin         --- 远程登录命令

/usr/bin/ssh            --- 远程连接登录命令

/usr/bin/ssh-copy-id    --- 远程分发公钥命令

ssh客户端包含ssh以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全FTP文件传输)等应用程序。

2.2 ssh远程登录服务器命令

ssh -p22 oldboy@10.0.0.150 [命令]

# SSH连接远程主机命令的基本语法;

# ssh 命令

# -p(小写), 用于指定远程主机端口,默认22端口可省略

# oldboy@remotehost

# "@"前面为用户名,如果用当前用户连接,可以不指定用户

# "@"后面为要连接的服务器的IP

2.3 scp命令详解

scp复制数据至远程主机命令(全量复制)
 SSH连接远程主机命令的基本语法;

 scp 命令

 -P(大写) 指定端口,默认22端口可不写

 -r 表示递归拷贝目录

 -p 表示在拷贝文件前后保持文件或目录属性不变

 -l 限制传输使用带宽(默认kb)

2.3.1 推:PUSH,上传

# scp -P22 -rp /tmp/oldboy oldboy@10.0.0.150:/tmp

# /tmp/oldboy为本地的目录。

# “@”前为用户名

# “@”后为要连接的服务器的IP。

# IP后的:/tmp目录,为远端的目标目录。

# 说明: 以上命令作用是把本地/tmp/oldboy推送至远端服务器10.0.0.150的/tmp目录

2.3.2 拉:PULL,下载

# scp -P22 -rp root@10.0.0.7:/tmp/oldboy /opt/

# 还可以将远端目录或文件拉取至本地

2.3.3 SCP命令结论

scp通过加密进行远程拷贝文件或目录的命令。

scp拷贝权限为连接的用户对应的权限。

scp支持数据的推送和拉取,但每次都是全量拷贝,效率低下。

2.4 Sftp命令详解

Sftp远程数据传输命令

sftp连接远程

sftp root@192.168.56.12

sftp -oPort=52113 root@10.0.0.41 <-sftp的特殊端口连接

下载文件, 至于本地服务器

sftp> get conf.txt /tmp/

上传本地服务器文件, 至远程服务器

sftp> put /root/t1.txt /root/

sftp-->XFTP

    1.支持批量上传文件

    2.支持单个文件超过4G

    3.支持断点续传

2.5 SSH服务软件详细说明

2.5.1 什么是ssh服务

SSH服务端是一个守护讲程 (daemon).他在后台运行并响应来自客户端的连接请求。 SSH服务端的讲程名为sshd,负责实时监听远程SSH客户端的远程连接请求,并进行处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接等。这个SSH服务就是我们前面基础系统优化中保留开机自启动的服务之。

ssh客户端包含ssh以及像scp(远程拷贝) slogin(远程登陆) sftp(安全FTP文件传输)等应用程序。

ssh的工作机制大致是本地的ssh客户端先发送一个连接请求到远程的ssh服务端,服务端检查连接的客户端发送的数据包和IP地址,如果确认合法,就会发送密钥给 SSH的客户端,此时,客户端本地再将密钥发回给服务端,自此连接建立。

2.5.2 ssh软件安装

客户端

[root@nfs01 ~]# rpm -qf `which ssh`

openssh-clients-5.3p1-122.el6.x86_64

服务端软件

[root@nfs01 ~]# rpm -qf `which sshd`

openssh-server-5.3p1-122.el6.x86_64

注意:使用sshd采用绝对路径进行启动

[root@test ~]# sshd

sshd re-exec requires execution with an absolute path

第3章 SSH连接方式

3.1 基于账户密码远程登录

基于口令的安全验证的方式就是大家现在一直在用的,只要知道服务器的SSH连接帐号和口令(当然也要知道对应服务器的 IP及开放的 SSH端口,默认为22 ),就可以通过 ssh客户端登录到这台远程主机。此时,联机过程中所有传输的数据都是加密的。

知道服务器的IP端口,账号密码, 即可通过ssh客户端登陆远程主机, 远程主机联机过程中传输数据库都是加密的。

  ~ ssh -p22 root@10.0.0.60

root@10.0.0.60's password:

[root@m01 ~]#

3.2 基于秘钥远程登录

默认情况下,通过ssh客户端登陆远程服务器, 需要提供远程系统上的帐号与密码,但为了降低密码泄露的机率和提高登陆的方便性, 建议使用密钥验证方式.

1.在管理服务器上生成密钥,-t密钥类型, -C指定用户邮箱

[root@m01 ~]# ssh-keygen -t rsa -C 943271736@qq.com

...

默认一路回车即可, 当然也可以根据不同需求进行修改

...

2.将A服务器上的公钥推送至B服务器

命令示例: ssh-copy-id [-i [identity_file]] [user@]machine

ssh-copy-id 命令

-i          指定下发公钥的路径

[user@]     以什么用户身份进行公钥分发(root),如果不输入,表示以当前系统用户身份分发公钥

machine     下发公钥至那台服务器, 填写远程主机IP地址

秘钥分发, [会将A服务器的公钥写入B服务器~/.ssh/authorized_keys文件中]

[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.41

3.A服务器通过密钥方式连接B服务器

远程登录对端主机方式

[root@m01 ~]# ssh root@172.16.1.41

[root@nfs ~]#

不登陆远程主机执行命令

[root@m01 ~]# ssh root@172.16.1.41 "hostname -i"

172.16.1.41

可能遇到错误

1.no route to host  防火墙

2.Connection refused  防火墙或服务未启用

3.3 telnet连接

telnet连接 不加密  无法使用root用户连接

安装telnet服务,然后使用root登录测试

[root@web01 ~]# yum install telnet-server -y

[root@web01 ~]# systemctl start telnet.socket

使用xshell的新建标签,输入如下指令[登录不上]

[e:\~]$ telnet 10.0.0.7

Kernel 3.10.0-862.el7.x86_64 on an x86_64

web01 login: root

Password:

Login incorrect

创建一个普通用户,再次使用telnet登录测试

[root@web01 ~]# useradd od

[root@web01 ~]# echo "1" | passwd --stdin od

[e:\~]$ telnet 10.0.0.7

web01 login: od

Password:

Last login: Mon Sep 10 09:57:39 from ::ffff:10.0.0.1

[od@web01 ~]$

第4章 ssh服务配置文件

配置文件中所有注释信息,表示默认参数配置

配置文件中#空格 后面内容表示说明信息

#参数 表示配置参数信息

配置文件参数信息修改后,一旦变为注释,即还原为默认配置

4.1 ssh服务的配置文件路径

vim  /etc/ssh/sshd_config

修改SSH服务的运行参数,是通过修改配置文件/etc/ssh/sshd_config实现的。

一般来说SSH服务使用默认的配置已经能够很好的工作了,如果对安全要求不高,仅仅提供SSH服务的情况,可以不需要修改任何配置。

4.2 配置文件中常用配置说明

[root@backup ~]# vim /etc/ssh/sshd_config

#       $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $

# This is the sshd server system-wide configuration file.  See

# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with

# OpenSSH is to specify options with their default value where

# possible, but leave them commented.  Uncommented options change a

# default value.

# OpenSSH is to specify options with their default value where

# possible, but leave them commented.  Uncommented options change a

# default value.

Port 25113                   #端口

ListenAddress 10.0.0.41      #监听地址(本地网卡地址),指定本地网卡那个网卡提供服务

PermitRootLogin no           #是否允许root用户登陆

#PermitEmptyPasswords no     #禁止空密码登陆

#UseDNS no                   #不使用DNS

GSSAPIAuthentication no      #API认证

连接慢的解决

#AddressFamily any         #指定监听ipv4地址,或是ipv6地址,或者所有都监听
 

配置文件内容说明:

井号(#)注释的参数信息为默认配置

井号(#)后面有空格的为描述信息

井号(#)后面没有空格的为参数信息

另外:配置文件参数信息修改后,一旦变为注释,即还原为默认配置

4.3 配置文件语法检查方法

使用sshd -t 命令 对配置文件的语法进行检查

正确

[root@backup ~]# sshd -t /etc/ssh/sshd

Extra argument /etc/ssh/sshd.

语法格式有错误

[root@test ~]# sshd -t /etc/ssh/sshd_config

/etc/ssh/sshd_config: line 50: Bad configuration option: uthorizedKeysFile

/etc/ssh/sshd_config: terminating, 1 bad configuration options

4.4 SSH配置文件相关参数

命令参数

参数说明

Port

指定sshd进程监听的端口号,默认为22.可以使用多条指令监听多个端口.

默认将在本机的所有网络接□上监听,但是可以通过ListenAddress指走只在某个特定的接口上监听.

PermitEmptyPasswords

是否允许密码为空的用户远程登录.默认为"no"

PermitRootLogin

是否允许root登录.可用值如下:"yes"(默认)表示允许."no"表示禁止.

"without-password"表示禁止使用密码认证登录."forced-commands-only"表示只有在指走了command选项的情况下才允许使用公钥认证登录.同时其它认证方法全部被禁止.这个值常用于做远程备份之类的事情.

1.多开一个窗口

2.临时多部署一条连接方式

3.给普通用户sudo权限

UseDNS

指定定sshd是否应该对远程主机名进行反向解折,以检查此主机名是否与其IP地址真实对应.默认值为"yes”.

ListenAddress

指定监听并提供服务相应的网卡地址信息

Linux下 SSH远程管理服务的更多相关文章

  1. linux下SSH远程连接服务慢解决方案

    1.适用命令及方案如下:[远程连接及执行命令]ssh -p22root@10.0.0.19ssh -p22 root@10.0.0.19 /sbin/ifconfig[远程拷贝:推送及拉取]scp - ...

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

    SSH远程管理服务 1. 远程管理服务知识介绍 # 1.1 SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Worki ...

  3. SSH远程管理服务实战

    目录 SSH远程管理服务实战 1.SSH基本概述 2.SSH相关命令 3.Xshell连接不上虚拟机 4.scp命令 5.sftp命令 6.SSH验证方式 7.SSH场景实践 8.SH安全优化 9.交 ...

  4. 五.ssh远程管理服务

    01. 远程管理服务知识介绍 1) SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定: ...

  5. Linux 下 SSH 远程超时解决方案

    Linux 下 SSH 远程超时解决方案 今天突然看到一个问题说是如何解决SSH远程超时的问题. 找了一点资料.用于解决这个需求~ 第一种:OpenSSH 配置文件设置 位于112行的 "C ...

  6. Linux系统学习 八、SSH服务—SSH远程管理服务

    1.SSH简介 ssh(安全外壳协议)是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议.传输的时候是经过加密的,防止信息泄露,比telnet(明文传递)要安全很多. ftp安装 ...

  7. linux运维、架构之路-SSH远程管理服务

    一.SSH服务功能介绍 1.远程登录管理 提供类似telnet远程联机服务器的服务,即上面提到的SSH服务 2.远程传输文件 是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供 ...

  8. 6、SSH远程管理服务实战

    1.SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务. 2.对传输 ...

  9. linux下ssh远程登录/scp远程复制文件/rsync远程同步命令的自动登录

    最近需要写一个脚本备份各个服务器上的程序到一个指定服务器上,本来以为查查rsync命令的使用321就能搞定,结果rsync命令要支持自动登 录还是要配置服务和参数,又不确定网上说的配置的行不行,因为都 ...

随机推荐

  1. 【git】远程仓库版本回退方法

    1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...

  2. Memcached Redis相关的干货

    为了以后查阅方便,所以转了各位的博文,感谢各位原博主. http://www.searchtb.com/2011/05/redis-storage.html           redis内存存储结构 ...

  3. oc温习八:static、extern、const 的了解

    参考文章:http://www.cocoachina.com/ios/20161110/18035.html 1.const 这个单词翻译成中文是“常量”的意思.在程序中我们知道“常量”的值是不能变的 ...

  4. 寒武纪camp网络测试赛

    寒武纪camp网络测试赛 地址:oj点我进入 A(树形dp+树链剖分) 题意: 分析: 考虑树形dp,f0(x)和f1(x)分别表示以x为根的子树,不取x点或取x点的最大合法子集的元素个数 那么对于一 ...

  5. windows 平台使用wireshark命令行抓包

    Windows网络流量大,或则需要长时间抓包时,wireshark图形界面使用起来比较麻烦 wireshark 内置 dumpcap命令 Capture interface:  -i <inte ...

  6. rror Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnec

    在mysql5中,可以设置safe mode,比如在一个更新语句中 UPDATE table_name SET bDeleted=0; 执行时会错误,报: You are using safe upd ...

  7. Broadcom的消息机制

    在Broadcom中提供了自己的消息机制,有两种消息形式:Request/Response and Event(事件) Request/Response消息:进程之间的通信都是通过smd,所有的消息都 ...

  8. Jekyll 搭建

    Jekyll搭建个人主页 早上昨晚上弄hexo的时候就开始有问题,发现命令有错误!今天早上来就开始把另外建立了仓库,转Jekyll,并不顺利,做了一天了,基本的theme的本地和远端主页可以显示,但当 ...

  9. Android NFC近场通信02----读写卡的准备工作

                        Android NFC近场通信02----读写卡的准备工作      因为公司接了一个听上去感觉比較NB的项目.给某油田做派工系统 .并由小女子负责Androi ...

  10. 从头认识Spring-3.1 简单的AOP日志实现-某方法之前的前后记录日志

    这一章节我们引入简单的AOP日志实现. 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch03.topic_1_1; pub ...