SSH远程管理

ssh功能

SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全。那SSH服务主要功能有哪些呢?

1.提供远程连接服务器的服务

2.对传输的数据进行加密

Linux远程链接:ssh协议(加密) telnet(明文)

windows远程连接:RDP协议 (remote desktop)

协议 端口
ssh 22
telnet 23
RDP 3389
http 80
https 443
FTP 20 21
POP3 110
MySQL 3306
Rsync 873
DNS 53

SSH相关命令

SSH有客户端与服务端,我们将这种模式称为C/S架构,ssh客户端支持Windows、Linux、Mac等平台。在ssh客户端中包含 ssh|slogin远程登陆、scp远程拷贝、sftp文件传输、ssh-copy-id秘钥分发等应用程序。

[root@m01 ~]# ssh root@10.0.0.41
ssh:客户端命令
root:系统用户名
@:分割用户和主机
10.0.0.41:主机的IP(可以是公网也可以是内网)
-p:指定端口

Xshell连接不上虚拟机

1.检查网络

#连谁ping谁
ping 10.0.0.41
tcping 10.0.0.41 22

2.检查端口

telnet 10.0.0.41 22
tcping 10.0.0.41 22

3.如果可以ping通,端口不通

#检测sshd服务是否启动
netstat -lntup|grep 22 #防火墙 selinux
systemctl stop firewalld
setenforce 0

scp命令

# -P 指定端口,默认22端口可不写
# -r 表示递归拷贝目录
# -p 表示在拷贝文件前后保持文件或目录属性不变
# -l 限制传输使用带宽(默认kb) #推:将本地/tmp/oldboy推送至远端服务器10.0.0.61的/tmp目录,使用对端的root用户
[root@m01 ~]# scp -P22 -rp /tmp/oldboy oldboy@10.0.0.61:/tmp #拉:将远程10.0.0.61服务器/tmp/oldboy文件拉取到本地/opt/目录下
[root@m01 ~]# scp -P22 -rp root@10.0.0.61:/tmp/oldboy /opt/ #限速
[root@m01 ~]# scp /opt/1.txt root@172.16.1.31:/tmp
root@172.16.1.31 password:
test 100% 656MB '83.9MB/s' 00:07
#限速为8096kb,换算为MB,要除以 8096/8=1024KB=1MB
[root@m01 ~]# scp -rp -l 8096 /opt/1.txt root@172.16.1.31:/tmp
root@172.16.1.31s password:
test 7% 48MB '1.0MB/s' 09:45

结论:

1.scp通过ssh协议加密方式进行文件或目录拷贝。

2.scp连接时的用户作为为拷贝文件或目录的权限。

3.scp支持数据推送和拉取,每次都是全量拷贝,效率较低。


Sftp远程数据传输命令

SSH验证方式

1.用户名密码

[root@m01 ~]# ssh root@10.0.0.41

2.密钥登陆方式

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

1.管理机生成密钥对

[root@m01 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:P6UswOccoZSLunZ0gekcQ/gDzhFNkH/+I1WHhtwQro8 root@m01
The key's randomart image is:
+---[RSA 2048]----+
| oB. .. |
| = o o. |
| o * oo.o+ . |
| o O+o+o.= . |
| o.**.So .. |
| .+ oB.+ o |
| .. .Eo= = |
| ... . o. . |
| ... . . |
+----[SHA256]-----+ [root@m01 ~]# ll .ssh/
total 8
-rw------- 1 root root 1679 Aug 8 19:07 id_rsa #私钥(宝塔镇河妖)
-rw-r--r-- 1 root root 390 Aug 8 19:07 id_rsa.pub #公钥(天王盖地虎)

2.管理机推送公钥

方式一(手动):
#在要连接的服务器上家目录下创建.ssh目录(用哪个用户连,就创建在哪个家目录下)
mkdir /root/.ssh
#授权700
chmod 700 /root.ssh
mkdir -m 700 ~/.ssh#一条命令实现
#在m01上查看公钥文件内容
cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuxyeePaQr6cI6KMINgW7262dDdfgiiwspNjKYEoEj7cfjpMBPBCpqTO4H5+E8U/GcxsFcj2S2fHlRevPMa8vXYqOvX3O0Xp/C9zNMJrNdT+NdpCnDHRpsF4/Egr0xxKju7LPC1qz/Gu6ksx1VqUmcX2RKrQdV2BYi+pqu/2SQYOUUjKpen0zWxnhjuVmZMV+hPHgs4ILbGwwmYxqY+ldvP0guviQ2CeK1JtQIbP2Q5bBSlMwPxr4P303LUkIBsI3pHRoCMnDT0YI9x9JjdRkkUNjeFoTAE4APsTgICd6nzRBfRRf/VOYk5REuub367yxrOZpfNXOcJ6QCRLYQl6Xn root@m01 #创建公钥文件authorized_keys
vim ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuxyeePaQr6cI6KMINgW7262dDdfgiiwspNjKYEoEj7cfjpMBPBCpqTO4H5+E8U/GcxsFcj2S2fHlRevPMa8vXYqOvX3O0Xp/C9zNMJrNdT+NdpCnDHRpsF4/Egr0xxKju7LPC1qz/Gu6ksx1VqUmcX2RKrQdV2BYi+pqu/2SQYOUUjKpen0zWxnhjuVmZMV+hPHgs4ILbGwwmYxqY+ldvP0guviQ2CeK1JtQIbP2Q5bBSlMwPxr4P303LUkIBsI3pHRoCMnDT0YI9x9JjdRkkUNjeFoTAE4APsTgICd6nzRBfRRf/VOYk5REuub367yxrOZpfNXOcJ6QCRLYQl6Xn root@m01 #授权600
chmod 600 ~/.ssh/authorized_keys
方式二:
#使用命令推送公钥
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.7

优化

SSH作为远程连接服务,通常我们需要考虑到该服务的安全,所以需要对该服务进行安全方面的配置。

1.更改远程连接登陆的端口

2.禁止ROOT管理员直接登录

3.密码认证方式改为密钥认证

4.重要服务不使用公网IP地址

5.使用防火墙限制来源IP地址*

编辑配置文件

vim /etc/ssh/sshd-config
###SSH###
#Port 6666 #端口
#PasswordAuthentication no #密码
#PermitRootLogin no #root
GSSAPIAuthentication no #
UseDNS no
###END###

免交互expect[扩展]

1.安装expect

[root@m01 ~]# yum install -y expect

2.编写expect脚本

#!/usr/bin/expect
set ip 10.0.0.51
set pass 123456
set timeout 30
spawn ssh root@$ip
expect {
"(yes/no)" {send "yes\r"; exp_continue}
"password:" {send "$pass\r"}
}
expect "root@*" {send "df -h\r"}
expect "root@*" {send "exit\r"}
expect eof

免交互sshpass[扩展]

1.安装sshpass

[root@m01 ~]# yum install -y sshpass

2.使用sshpass命令

[root@m01 ~]# sshpass -p 123456 ssh root@10.0.0.51

[option]
-p:指定密码
-f:从文件中取密码
-e:从环境变量中取密码
-P:设置密码提示

简易跳板机

#!/bin/bash

if [ $1 == 'web01' -o $1 == '10.0.0.7' ];then
ssh root@172.16.1.7
elif [ $1 == 'backup' -o $1 == '10.0.0.41' ];then
ssh root@171.16.1.41
elif [ $1 == 'nfs' -o $1 == '10.0.0.31' ];then
ssh root@172.16.1.31
elif [ $1 == 'm01' -o $1 == '10.0.0.61' ];then
ssh root@172.16.1.61 -p 22
fi
~

小结

  • 权限 1:禁止root用户登录时,普通用户权限700或者属主属组统一,
  • 公钥,注意存放路径,普通用户家目录下,公钥文件授权600

SSH远程管理的更多相关文章

  1. 五.ssh远程管理服务

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

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

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

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

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

  4. SSH远程管理服务实战

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

  5. Linux学习笔记19-ssh远程管理

    远程管理 服务器一般运行在IDC机房中,一般都是通过远程管理方式对服务器进程控制. 常见的远程管理工具: RDP(remote desktop protocol)协议,window远程桌面管理 Tel ...

  6. Linux下 SSH远程管理服务

    第1章 SSH基本概述 1.1 SSH服务协议说明 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定 在进 ...

  7. 6. SSH远程管理服务实战

    1. SSH基本概念? ssh是一个应用层安全协议 2.SSH主要的功能是? 实现远程登录, 数据传输过程中进行加密. 钉钉(澡堂模式) 远程登录: ssh telnet 3.SSH与Telnet之间 ...

  8. ssh远程管理服务的介绍

    第6章 远程管理的介绍 6.1 服务的概念介绍 6.1.1 ssh和telnet服务的相同和不同点 ssh: 服务端口号为22 在数据传输的时候是加密的传输 一般在互联网中使用,可以使用root账号进 ...

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

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

随机推荐

  1. C++ std::deque 基本用法

    #include <iostream> #include <string> #include <deque> // https://zh.cppreference. ...

  2. 计算几何 val.2

    目录 计算几何 val.2 几何单位结构体板子 旋转卡壳 基础概念 求法 模板 半平面交 前置芝士:线段交 S&I算法 模板 最小圆覆盖 随机增量法 时间复杂度 模板 后记 计算几何 val. ...

  3. 【原创】flash中DataGrid数据列显示顺序的解决办法(非数据排序)

    今天在用flash做一个简单的地图展示功能,需要把xml绑定到DataGrid,完成后,又仔细看了几遍,发现列的顺序不对,准确的说是不稳定,不固定,于是在网上查了一下,没有相关的内容.于是自己研究了一 ...

  4. 深度好文:PHP写时拷贝与垃圾回收机制(转)

    原文地址:http://www.php100.com/9/20/87255.html 写入拷贝(Copy-on-write,简称COW)是一种计算机程序设计领域的优化策略.其核心思想是,如果有多个调用 ...

  5. python面向对象-1

    1.面向对象的思想优点 优点: 简化代码 ,构建公共模板 ,扩展性强 思想: 类作为模板 ,对象通过模板实例化对象 ,对象去做事 ,抽象将显示存在的事物使用代码体现 2.三大特性 封装(狭义) : 对 ...

  6. Dynamics CRM 2013开始推出的服务器端同步来配置邮件服务

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  7. Android app targetSdk升级到27碰到的一个bug补充说明

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/203 完美解决google nexus设备全面屏主题cra ...

  8. PHP 利用PHPExcel到处数据到Excel;还有导出数据乱码的解决方案。

    直接贴代码吧 PHP版本5.6.38 mysql版本5.0 //连接数据库 $mysql_server_name = "*.*.*.*"; $mysql_username=&quo ...

  9. IDEA SVN消失

    问题:idea 的 svn消失 1.右键项目文件时无subversion选项 2.启动选项栏无图标 解决办法: 方法1:菜单栏>CVS>Enabled Version Control In ...

  10. LeetCode 652: 寻找重复的子树 Find Duplicate Subtrees

    LeetCode 652: 寻找重复的子树 Find Duplicate Subtrees 题目: 给定一棵二叉树,返回所有重复的子树.对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可. 两 ...