ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SSH远程管理服务

2022-04-07 14:01:03  阅读:246  来源: 互联网

标签:10.0 服务 nfs SSH 远程管理 172.16 服务器 root ssh


目录

 

SSH远程管理服务

SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后再进行数据传输。确保了数据传输安全。那SSH服务主要功能有哪些呢?
1.提供远程连接服务器的服务
linux远程连接协议:ssh 22 telnet 23
windows远程连接协议:RDP(remote desktop)3389
2.对传输进行加密

 
面试题:请说明下列服务都是那些端口?
ssh 22
telnet 23
http 80
https 443
ftp 20 21
RDP 3389
mysql 3306
dns 53
zabbix 10051 10050
elasticsearch 9200 9300
pop3 110
rpcbind 111
rsync 873
redis 6379

ssh和telnet

1.使用telnet连接服务器

 
#1.安装telnet
[root@nfs ~]# yum install -y telnet-server
#2.启动telnet
[root@nfs ~]# systemctl start telnet.socket
#3.创建普通用户
[root@nfs ~]# useradd lhd
[root@nfs ~]# echo 123 | passwd --stdin lhd
#4.验证登录
[d:\~]$ telnet 10.0.0.31 23
Connecting to 10.0.0.31:23...
Connection established.
To escape to local shell, press Ctrl+Alt+].
Kernel 3.10.0-957.el7.x86_64 on an x86_64
nfs login: lhd
Password:
Last login: Tue Feb 18 09:56:30 from ::ffff:10.0.0.1
[lhd@nfs ~]$

2.ssh和telnet区别

 
telnet:
 1.不支持root直接登录,只能用普通用户
 2.数据传递是明文的
 
ssh:
 1.支持root直接登录
 2.所有数据传递都是加密的

SSH相关命令

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

 
[root@web01 ~]# ssh -p 22 root@10.0.0.31
ssh #命令
-p #指定端口(在终端无法使用)
22 #指定ssh协议端口
root #连接时使用的用户(如果不写用户,默认使用当前服务器当前用户)
@ #分隔符
10.0.0.31 #远端服务器IP
-o StrictHostKeyChecking=no #登录时跳过验证身份

2.Xshell连接不上虚拟机

 
#1.查网络,连接谁就ping谁
ping 10.0.0.31
tcping 10.0.0.31 22
#2.查端口
telnet 10.0.0.31 22
tcping 10.0.0.31 22
#3.如果可以ping通,端口不通
需要检测服务端口
netstat -lntp | grep sshd
#4.?卡是否启动
ip a
#5.防火墙
查看防火墙规则是否允许ssh服务
firewall-cmd --list-all
#6.查看虚拟网络编辑器
查看网关是否正确
#7.查看电脑的VMnat8网卡,配置信息是否正确

3.scp命令(远程文件传输)

 
scp客户端命令:远程拷贝
scp类似于rsync
scp全量 rsync增量

#scp支持推和拉
#推:将本地的/etc目录推送到backup服务器的/tmp目录下
[root@nfs ~]# scp -r /etc/ root@172.16.1.41:/tmp/

#将将本地的/etc目录下的文件推送到backup服务器的/tmp目录下
[root@nfs ~]# scp -r /etc/* root@172.16.1.41:/tmp/

#拉:将远端172.16.1.41服务器的/etc目录拉取到本地的/tmp目录下
[root@nfs ~]# scp -r root@172.16.1.41:/etc /tmp/

-P 指定端口,默认是22
-p 保持传输文件属性不变
-r 表示递归拷贝目录
-l 限速

#-l 限速 单位是 kb
[root@nfs ~]# dd if=/dev/zero of=./1.txt bs=1M count=500
[root@nfs tmp]# scp file root@172.16.1.41:/backup/
root@172.16.1.41's password:
file 46% 234MB 14.5MB/s 00:18

#设置速度为10M 10*1024*8=81920
[root@nfs tmp]# scp -l 81920 file root@172.16.1.41:/backup/

4.sftp命令

 
#文件传输命令
[root@web01 ~]# sftp root@10.0.0.31
#查看连接后服务器
sftp> ls
#查看本地服务器
sftp> lls

#命令 远程服务器文件 本地服务器位置
sftp> get 1_nfs.gif ./
#命令 本地服务器文件 远程服务器位置
sftp> put /data/1_nfs.gif /tmp/
#图形界面: Xftp FileZilla FlashFXP

sftp:
 1.能上传文件夹
 2.能支持断点续传
 3.支持上传大于4G的文件
 
rz:
 1.不能上传文件夹
 2.不支持断点续传
 3.只能上传小于4G的文件

SSH验证远程登录

1.方式一:基于账户密码的方式远程登录

 
#需要知道服务器的IP,端口,账户,密码,才可以通过ssh客户端连接远程主机
[root@web01 ~]# ssh -p 22 root@172.16.1.31
root@172.16.1.31's password:
Last login: Tue Feb 18 11:01:54 2020 from 10.0.0.7
[root@nfs ~]#

#密码设置条件
1.复杂的密码:yonghu_12@31_sysnum(记不住)
2.简单的密码:1 123(容易被破解)
3.每台服务器密码不一样
4.密码三个月更换一次
5.输?密码错误三次自动锁死
6.密码有key,30秒一变或者1分钟一变

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

 
-t 指定秘钥类型 rsa dsa
-C 指定用户邮箱
[root@m01 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:iULhx6BId6WORBUU6Y4o4naeb9Rm7hC9PmbWAloZ05M root@m01
The key's randomart image is:
+---[RSA 2048]----+
| . o=*=.         |
|..oo.=.          |
|. ..+.+ .        |
| ..o=.E .        |
| ..+o*.S         |
|o. . B.+.        |
|+ +.=..          |
| o o..oB .       |
|. ooo.=oo        |
+----[SHA256]-----+

2)推送公钥到要免密连接的服务器

 
#方式一:手动复制公钥
[root@m01 .ssh]# cat id_rsa.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQCvokaPfSni0HC+tppFKrKuYrSH41D1Y35Qi3cfJm7Yl7j
tnhN/E2bHaRxlx4Sff+ueLhS4IiewPwdywg/iG77HA8TIPBgnoW62PecNeuDn322KDo3qTzBMjm
XIY6AT4D2sDpEjhhN7JmeQ/uSKaGAQQUMcnW2YRPwgaFCZEGR5XjeD7BQAGxBYsx6TjFKOn55Wf
KBFHLQSO3jXv+2y1yil0s3hK7iBhiCCMRc34oBgMh1aMZQekUf8CgUlSwtR3RdgKzKP68L5R/gg
mZzGYZ5UOstJd0Vw1I14kZEaBHIF734tdNYbEcv8CXFku1iQzKrwkIs4FX7k3TxogI4XcE+/
root@m01

#把公钥复制到要连接的服务器
[root@web01 ~]# mkdir .ssh/
[root@web01 ~]# vim .ssh/authorized_keys
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQCvokaPfSni0HC+tppFKrKuYrSH41D1Y35Qi3cfJm7Yl7j
tnhN/E2bHaRxlx4Sff+ueLhS4IiewPwdywg/iG77HA8TIPBgnoW62PecNeuDn322KDo3qTzBMjm
XIY6AT4D2sDpEjhhN7JmeQ/uSKaGAQQUMcnW2YRPwgaFCZEGR5XjeD7BQAGxBYsx6TjFKOn55Wf
KBFHLQSO3jXv+2y1yil0s3hK7iBhiCCMRc34oBgMh1aMZQekUf8CgUlSwtR3RdgKzKP68L5R/gg
mZzGYZ5UOstJd0Vw1I14kZEaBHIF734tdNYbEcv8CXFku1iQzKrwkIs4FX7k3TxogI4XcE+/
root@m01
[root@web01 ~]# chmod 700 .ssh/
[root@web01 ~]# chmod 600 .ssh/authorized_key

#方式二:命令推送公钥
[root@m01 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@172.16.1.31
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:
".ssh/id_rsa.pub"
The authenticity of host '172.16.1.31 (172.16.1.31)' can't be established.
ECDSA key fingerprint is
SHA256:UPOOIxMjGD7QyAGVJAVNX+3Jf65ef33D1aDmML1DBcY.
ECDSA key fingerprint is
MD5:5d:7d:49:94:1d:a3:9c:2f:3c:66:db:64:3d:26:ea:90.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to
filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are
prompted now it is to install the new keys
root@172.16.1.31's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@172.16.1.31'"
and check to make sure that only the key(s) you wanted were added.
[root@m01 ~]#
[root@m01 ~]# ssh 172.16.1.31
Last login: Tue Feb 18 12:14:27 2020 from 172.16.1.7

3)免密登录可以帮我们做巡检

 
[root@m01 ~]# cat xunjian.sh
#!/bin/bash
[ $# -ne 1 ] && echo "请输入执行的命令" && exit 1
for i in 31 21 7
do
   echo "######172.16.1.$i#######"
   ssh root@172.16.1.$i "$1"
done

SSH免密场景

 
1.实践场景,用户通过Windows/MAC/Linux客户端连接跳板机免密码登录,跳板机连接后端无外网的Linux主机实现免密登录,架构图如下。
2.实践多用户登陆一台服务器无密码
3.实践单用户登陆多台服务器免密码

1.windows使用xshell生成秘钥对

免交互expect[扩展]

1.安装expect

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

2.编写免密操作脚本

 
[root@m01 ~]# cat expect.exp
#!/usr/bin/expect
set ip 10.0.0.7
set pass 1
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 .ssh]# yum install -y sshpass

2.sshpass命令

 
[root@m01 .ssh]# sshpass -p 1 ssh root@172.16.1.7
sshpass    命令
-p         指定密码
1          密码
ssh        连接命令
root       用户
@          分隔符
172.16.1.7 主机

3.编写sshpass脚本

 
[root@m01 .ssh]# vim ssh.sh
#!/bin/bash
for num in 41 31 7;do
    echo ------------------ 10.0.0.$num -----------------
    sshpass -p 1 ssh -o StrictHostKeyChecking=no root@10.0.0.$num df -h
done

SSH安全优化(配置文件/etc/ssh/sshd_config)

 
SSH作为远程连接服务,通常我们需要考虑到服务的安全,所以需要对服务进行安全方面的配置。
1、更改远程登陆的端口
2、禁止root管理员直接登录
3、密码认证方式改为秘钥认证
4、重要服务不适用公网IP地址
5、使用防火墙限制来源IP地址

Port 4399 # 修改sshd服务的默认端口
PermitRootLogin no # 禁止使用root登录服务器
PasswordAuthentication no # 禁止使用密码登录
UseDNS no # 禁止ssh进行dns反向解析,影响ssh连接效率参数
GSSAPIAuthentication no # 禁止GSS认证,减少连接时产生的延迟

标签:10.0,服务,nfs,SSH,远程管理,172.16,服务器,root,ssh
来源: https://www.cnblogs.com/wangcunyue/p/16111914.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有