linux-远程访问管理(sshd,scp,sftp)

1、ssh的概述

SSH(Secure Shell)是一种安全通道协议,通过加密 和认证机制实现安全的远程访问和文件传输等业务,主要 用来实现字符界面的远程登录、远程复制等功能。 SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。

与早期的 Telent(远程登录)、RSH(Remote Shell, 远程执行命令)、RCP(Remote File Copy,远程文件复制)等应用相比,SSH 协议提供了更好的安全性。

ssh传输层协议,提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。

SSH依赖端口进行通信,默认端口号为22。SSH服务器在 指定端口侦听连接请求,客户端发起连接请求后,双方建立TCP连接。

常用工具:

  • OpenSSH:开源的SSH实现,广泛应用于各种操作系统。yum install openssh-clients openssh-server 或者 apt install openssh-clients openssh-server
  • PuTTY:Windows平台上的SSH和Telnet客户端,支持多种认证方式和端口转发等功能。

ssh的文件:

  • 服务端主程序:/usr/sbin/sshd
  • 服务端配置文件:/etc/ssh/sshd_config
  • 默认配置文件:/etc/ssh/sshd_config

ssh配置文件的常见限制:

ssh 配置文件的验证文件:

密码验证:PermitRootLogin yes允许root用户登录

公钥私钥验证:PubkeyAuthentication yes启用公钥认证功能,允许用户通过私钥与服务器公钥配对完成登录,替代传统密码认证。

2、ssh的远程登录

注:准备两台服务器,在同一个局域网下,可以相互ping通(内网)

2.1 普通密码连接

  • ssh username@hostname_or_ip # 连接远程主机(默认端口22)
  • ssh -p 2222 username@hostname # 指定端口,连接非默认端口

2.2 免密码连接(公私钥连接)

  • 生成SSH密钥对,命令生成密钥:在本地客户端终端:ssh-keygen -t rsa -b 4096 -C "注释"
  • 将公钥复制到目标服务器,使用 ssh-copy-id命令:ssh-copy-id username@server_ip
  • 编辑SSH配置文件,启用公钥认证:PubkeyAuthentication yes
  • 其他安全建议:PermitRootLogin no # 禁止root登录,Port 2222 # 修改默认端口(非必选)
  • 重启sshd服务,配置生效

3、scp 远程文件传输

通过 scp 命令可以利用 SSH 安全连接与远程主机相互复制文件。使用 scp 命令时,除了必须指定复制源、目标之外,还应指定目标主机地址、登录用户,执行后根据提示输入验证口令即可。

用法:

  • scp 选项 源文件或目录 目标路径

  • -r递归复制目录(必须使用): scp -r /local/dir user@remote:/remote/dir

  • -P 指定SSH端口(大写,非默认端口):scp -P 2222 file.txt user@remote:/path

  • -i指定密钥文件路径(如非默认位置):scp -i ~/.ssh/mykey.pem file.txt user@remote:/path

  • -C 启用压缩传输(减少带宽,提升速度)

  • -p 保留文件属性 (修改时间、权限等)

  • -v 显示详细传输信息(调试用)

  • -l限制带宽(单位:Kbit/s)

4、sftp文件传输协****议

SFTP(SSH File Transfer Protocol,SSH 文件传输协议)是一种基于 SSH(Secure Shell)的文件传输协议,用于在客户端和服务器之间安全地传输文件。与传统的 FTP 不同,SFTP 通过加密通信保护数据传输,适合传输敏感信息。

sftp用法:

  • 连接到SFTP服务器:在命令行中输入sftp user@hostname,也可使用 -P 指定端口号
  • 下载文件:get命令下载文件,如get /remote/path/file /local/path
  • 上传文件:put命令上传文件,如get /local/path/file /remote/path
  • mput上传多个文件
  • mget下载多文件
相关推荐
这个DBA有点耶3 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
arbboter3 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
测试运维日常笔记3 小时前
Linux系统安装配置TigerVNC服务器完整指南
linux·运维·服务器
像风一样自由20203 小时前
加强版VScode结合remote-ssh远程连接服务器开发指南
服务器·vscode·ssh
雾时之林4 小时前
Linux----cron定时服务
linux·运维·服务器
消失的旧时光-19435 小时前
第一篇:Ktor Client 到底是什么?从 Retrofit 迁移理解 Ktor 网络请求架构
网络·架构·retrofit·ktor·dsl
数据知道5 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
江畔柳前堤5 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
LabVIEW开发5 小时前
LabVIEW 通过以太网控制 Yokogawa WT3000 功率分析仪:tmctl.dll 与原始套接字方案
网络·labview·labview知识·labview功能·labview程序
wengqidaifeng6 小时前
1.从“会敲命令”到理解 Linux:15 个基础指令、文件树与命令执行的本质
linux·运维·服务器·ubuntu