SSH远程服务管理
文章目录
-
- SSH远程服务管理
-
- 1、ssh是什么?
- 2、ssh和telnet的区别
- 3、ssh的功能
- [4、使用winshark抓包 查看telnet和ssh之间的区别](#4、使用winshark抓包 查看telnet和ssh之间的区别)
- 5、ssh软件包分析
- 6、scp复制数据至远程主机命令
- [7、sftp 远程数据传输命令](#7、sftp 远程数据传输命令)
- 8、ssh的连接方式
-
- [1、 输入命令](#1、 输入命令)
- 9、案例
1、ssh是什么?
密文传输,是一个安全外壳的协议
远程连接协议:
telnet tcp/23 明文
ssh tcp/22 密文
2、ssh和telnet的区别
1、telnet是明文,ssh是密文
2、telnet默认不允许root用户登入 ssh允许
3、ssh的功能
php
#1、提供远程连接服务器服务
云主机
虚拟机
物理主机
#2、对传输的数据进行加密
4、使用winshark抓包 查看telnet和ssh之间的区别
抓取telnet
php
#安装telnet
[root@server ~]# yum -y install telnet-server
#创建用户密码,用于登入,因为不可以使用root用户
[root@server ~]# useradd jy
[root@server ~]# echo 123 | passwd --stdin jy
Changing password for user jy.
passwd: all authentication tokens updated successfully.
#启动服务
systemctl start telnet.socket
#进行远程登入
5、ssh软件包分析
php
[root@server ~]# yum list openssh*
openssh.x86_64 7.4p1-23.el7_9 @updates
openssh-clients.x86_64 7.4p1-23.el7_9 @updates
openssh-server.x86_64 7.4p1-23.el7_9 @updates
#相关的命令
#服务端软件提供
[root@server ~]# rpm -ql openssh-server
/etc/pam.d/sshd #ssh进程
/etc/ssh/sshd_config #ssh配置文件
#客户端提供服务
[root@server ~]# rpm -ql openssh-clients
/usr/bin/scp #远程拷贝
/usr/bin/sftp #文件传输
/usr/bin/slogin #ssh 登入
/usr/bin/ssh #ssh 连接命令
/usr/bin/ssh-copy-id #传输密钥
/usr/bin/ssh-keyscan #生成密钥
#语法:
ssh命令 /usr/bin/ssh
ssh -p22 用户名@目标主机名称|ip地址
-p 端口号
6、scp复制数据至远程主机命令
php
# scp 命令
# -P(大写) 指定端口,默认22端口可不写
# -r 表示递归拷贝目录
# -p 表示在拷贝文件前后保持文件或目录属性不变
# -l 限制传输使用带宽(默认kb)
推:PUSH,上传
# scp -P22 -rp /etc root@10.0.0.41:/tmp
# /etc为本地的目录。
# "@"前为用户名
# "@"后为要连接的服务器的IP。
# IP后的:/tmp目录,为远端的目标目录。
# 说明: 以上命令作用是把本地/etc推送至远端服务器10.0.0.41的/tmp目录
拉:PULL,下载
# scp -P22 -rp root@10.0.0.41:/etc /opt/
# 还可以将远端目录或文件拉取至本地
结论:
1.scp通过加密进行远程拷贝文件或目录的命令。
2.scp拷贝权限为连接的用户对应的权限。
3.scp支持数据的推送和拉取,但每次都是全量拷贝,效率低下。
7、sftp 远程数据传输命令
php
连接远程sftp
# sftp root@10.0.0.41
# sftp -oPort=52113 root@10.0.0.41 <-sftp的特殊端口连接
# 下载文件, 至于本地服务器
sftp> get conf.txt /tmp/
# 上传本地服务器文件, 至远程服务器
sftp> put /root/t1.txt /root/
8、ssh的连接方式
1、 输入命令
php
账户密码进行登录 基于账户密码
ssh root@10.0.0.200
9、案例
php
#ssh生成介绍
linux
生成密钥对
ssh-keygen
一路到底 如果有需求可以添加
ssh-keygen
Generating public/private rsa key pair.
# 生成rsa公私密钥对
Enter file in which to save the key (/root/.ssh/id_rsa):
# 输入保存密钥的文件(/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:lQR2p3yd6emd8+zfqKNWM6sEIe2BlQfayDI8UCeVRsM root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| ..o+=.=+o . |
| o +EX.+.+ . o |
| =.* =.= . + |
| + o + . . . |
| S o |
| . +. ..|
| .. +.o.|
| .. o o+|
| .oo.o..B|
+----[SHA256]-----+
php
#实验
基本环境
m01 10.0.0.61 密钥对 公钥 私钥
backup 10.0.0.41 被管理 公钥
nfs 10.0.0.31 被管理 公钥
m01
1.生成密钥对
ssh-keygen
2.分发公钥
backup
ssh-copy-id -i .ssh/id_rsa.pub root@10.0.0.41
nfs
ssh-copy-id -i .ssh/id_rsa.pub root@10.0.0.31
ssh的访问控制
ssh的配置文件
/etc/ssh/sshd_config #修改配置文件
Port #修改ssh的端口号
PermitRootLogin yes #root用户登录相关的选项
PasswordAuthentication yes #开启基于用户密码登录方式
UseDNS no #SSH的DNS解析功能 减少ssh的连接效率
GSSAPIAuthentication no #是否开启验证