Linux下 SSH远程管理服务
第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远程管理服务的更多相关文章
- linux下SSH远程连接服务慢解决方案
1.适用命令及方案如下:[远程连接及执行命令]ssh -p22root@10.0.0.19ssh -p22 root@10.0.0.19 /sbin/ifconfig[远程拷贝:推送及拉取]scp - ...
- Linux(11):期中架构(3)--- SSH远程管理服务 & ansible 批量管理服务
SSH远程管理服务 1. 远程管理服务知识介绍 # 1.1 SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Worki ...
- SSH远程管理服务实战
目录 SSH远程管理服务实战 1.SSH基本概述 2.SSH相关命令 3.Xshell连接不上虚拟机 4.scp命令 5.sftp命令 6.SSH验证方式 7.SSH场景实践 8.SH安全优化 9.交 ...
- 五.ssh远程管理服务
01. 远程管理服务知识介绍 1) SSH远程登录服务介绍说明 SSH是Secure Shell Protocol的简写,由 IETF 网络工作小组(Network Working Group)制定: ...
- Linux 下 SSH 远程超时解决方案
Linux 下 SSH 远程超时解决方案 今天突然看到一个问题说是如何解决SSH远程超时的问题. 找了一点资料.用于解决这个需求~ 第一种:OpenSSH 配置文件设置 位于112行的 "C ...
- Linux系统学习 八、SSH服务—SSH远程管理服务
1.SSH简介 ssh(安全外壳协议)是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议.传输的时候是经过加密的,防止信息泄露,比telnet(明文传递)要安全很多. ftp安装 ...
- linux运维、架构之路-SSH远程管理服务
一.SSH服务功能介绍 1.远程登录管理 提供类似telnet远程联机服务器的服务,即上面提到的SSH服务 2.远程传输文件 是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供 ...
- 6、SSH远程管理服务实战
1.SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务. 2.对传输 ...
- linux下ssh远程登录/scp远程复制文件/rsync远程同步命令的自动登录
最近需要写一个脚本备份各个服务器上的程序到一个指定服务器上,本来以为查查rsync命令的使用321就能搞定,结果rsync命令要支持自动登 录还是要配置服务和参数,又不确定网上说的配置的行不行,因为都 ...
随机推荐
- 数据库备份与还原c#.net实现
原文发布时间为:2008-10-25 -- 来源于本人的百度文章 [由搬家工具导入] 数据库备份与还原c#.net实现: 页面上面有 备份,还原,下拉菜单(浏览备份文件夹下面的所有文件名),删除(删除 ...
- UVA 861 组合数学 递推
题目链接 https://vjudge.net/problem/UVA-861 题意: 一个国际象棋棋盘,‘象’会攻击自己所在位置对角线上的棋子.问n*n的棋盘 摆放k个互相不攻击的 '象' 有多少种 ...
- VS2015 android 设计器不能可视化问题解决。
近期安装了VS2015,体验了一下android 的开发,按模板创建执行了个,试下效果非常不错.也能够可视化设计.但昨天再次打开或创建一个android程序后,设计界面直接不能显示,显示错误:(可能是 ...
- Deepin-还原Windows平台
首次启动! 是不是感觉很迷茫呢? 找不到存在感 先设置成Windows那种高校模式(右键下面任意区域) OK了吧,然后我们找到“启动器”或者按Windows键(在Deepin linux我们称为Sup ...
- POJ 1679 The Unique MST 推断最小生成树是否唯一
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 22715 Accepted: 8055 D ...
- apache下配置认证用户
有时候我们须要给我apacheserver下制定的文件夹加上用户认证,方便一些而用户进行文件的浏览.配置例如以下: 1 设置用户 1 htpasswd -c file_path user_name 回 ...
- 软件质量之道:PCLint之中的一个
故天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能. 孟子 1引子 今天听老韩一席话,当真是感慨万千啊.心怀斗志昂扬.奋斗十年,到头来.却看到身 ...
- 全局最小割模版 n^3
//点标从0-n-1, 開始时先init 复杂度n^3 //对于边(u,v,flow): //g[u][v]+=flow; //g[v][u]+=flow; typedef long long ll; ...
- JavaScript-创建第一个自己的类库
通过上一节面向对象和原型的学习. 我们知道了怎样创建一个类,包含类的私有化属性和方法.公有化属性和方法.静态属性和方法.在这里略微回想一下.首先要创建一个类能够通过1.new object().2.利 ...
- C语言细节笔记2
C语言常见问题笔记: 1. 指针的声明 char * p1, p2; p1 是一个指向char类型的指针,而p2是一个char类型变量 这是由于 * 并不是基本类型的一部分,而是包含 ...