linux命令详解,ssh服务+远程拷贝

news2024/12/24 9:01:47

ssh服务

ssh(Secure Shell)命令用于安全地远程登录到另一台计算机,并执行命令和传输文件。ssh 提供了加密的通信通道,确保数据传输的安全性。

ssh [选项] [用户@]主机 [命令]

常用选项

  • -V:显示 ssh 版本信息。
  • -v:增加调试信息的详细程度,最多可以使用三次(-v -v -v)。
  • -i:指定用于身份验证的私钥文件。
  • -p:指定远程主机的 SSH 服务端口(默认为 22)。
  • -l:指定登录用户名。
  • -X 或 -Y:启用 X11 转发,用于图形界面应用程序。
  • -N:不执行远程命令,仅建立连接(常用于端口转发)。
  • -f:在后台运行 ssh
  • -C:启用压缩。
  • -o:指定配置选项。
  • -L:本地端口转发。
  • -R:远程端口转发。
  • -D:动态端口转发(SOCKS 代理)。

一、启动服务

sudo systemctl start ssh  命令用于启动 SSH 服务,使得其他设备可以通过SSH协议连接到这台主机

systemctl status ssh 检测是否开启ssh服务

二、连接主机

ssh root@localhost
1. 基本用法
ssh user@hostname
  • user:远程主机的用户名。
  • hostname:远程主机的地址(可以是 IP 地址或主机名)。
2. 指定端口
ssh -p 2222 user@hostname
  • -p 2222:指定远程主机的 SSH 服务端口为 2222。
3. 使用私钥文件
ssh -i /path/to/private_key user@hostname
4. 多跳连接
ssh -t user1@host1 ssh user2@host2
  • -t:强制分配一个伪终端,用于多跳连接。
5. 代理命令
ssh -o ProxyCommand="nc %h %p" user@hostname
  • -o ProxyCommand=“nc %h %p”:使用 nc(Netcat)作为代理命令。
  • -i /path/to/private_key:指定用于身份验证的私钥文件。

三、配置文件

/etc/ssh/sshd_config

/etc/ssh/sshd_config 是 SSH 服务器(sshd)的配置文件,用于控制 SSH 服务的行为。这个文件包含了许多配置选项,可以通过编辑这些选项来调整 SSH 服务的各种行为。
image.png
Port

  • 描述:指定 SSH 服务监听的端口号。
  • 默认值:22
  • 示例
Port 2222

ListenAddress

  • 描述:指定 SSH 服务监听的 IP 地址。可以指定多个地址,每行一个。
  • 默认值:监听所有可用的 IP 地址
  • 示例
ListenAddress 0.0.0.0
ListenAddress ::1

HostKey

  • 描述:指定 SSH 服务使用的主机密钥文件。
  • 默认值:通常包括 ssh_host_rsa_keyssh_host_dsa_keyssh_host_ecdsa_key 和 ssh_host_ed25519_key
  • 示例
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

4. PermitRootLogin

  • 描述:控制是否允许 root 用户通过 SSH 登录。
  • 默认值prohibit-password
  • 可选值
    • yes:允许 root 登录
    • no:禁止 root 登录
    • without-password:允许 root 使用公钥认证登录,但不允许密码登录
    • prohibit-password:允许 root 使用公钥认证登录,但不允许密码登录
  • 示例
PermitRootLogin no

PasswordAuthentication

  • 描述:控制是否允许使用密码进行身份验证。
  • 默认值yes
  • 可选值
    • yes:允许密码认证
    • no:禁止密码认证
  • 示例
PasswordAuthentication no

ChallengeResponseAuthentication

  • 描述:控制是否允许使用挑战-响应认证机制。
  • 默认值yes
  • 可选值
    • yes:允许挑战-响应认证
    • no:禁止挑战-响应认证
  • 示例
ChallengeResponseAuthentication no

PubkeyAuthentication

  • 描述:控制是否允许使用公钥进行身份验证。
  • 默认值yes
  • 可选值
    • yes:允许公钥认证
    • no:禁止公钥认证
  • 示例
PubkeyAuthentication yes

AuthorizedKeysFile

  • 描述:指定公钥文件的位置。
  • 默认值%h/.ssh/authorized_keys
  • 示例
AuthorizedKeysFile .ssh/authorized_keys

四、客户端配置

hash knownHosts yes

在 SSH 客户端配置文件中,HashKnownHosts 选项用于控制是否对 known_hosts 文件中的主机名和 IP 地址进行哈希处理。哈希处理可以增强安全性,因为即使 known_hosts 文件被泄露,攻击者也无法直接从中获取实际的主机名或 IP 地址。

客户端配置文件

SSH 客户端的配置文件通常位于 ~/.ssh/config,每个用户可以有自己的配置文件。系统范围的配置文件位于 /etc/ssh/ssh_config

配置 HashKnownHosts

要启用 HashKnownHosts 选项,你需要在 ~/.ssh/config 文件中添加或修改相应的配置。

示例配置
  1. 打开配置文件
    nano ~/.ssh/config
    
  2. 添加或修改 HashKnownHosts 选项
    # ~/.ssh/config
    Host *
        HashKnownHosts yes
    
    • Host *:表示此配置适用于所有主机。
    • HashKnownHosts yes:启用对 known_hosts 文件中的主机名和 IP 地址进行哈希处理。
保存并应用配置
  1. 保存配置文件:编辑完配置文件后,保存并退出编辑器。
  2. 测试配置
ssh -o HashKnownHosts=yes user@hostname

你也可以直接使用 -o 选项在命令行中临时启用 HashKnownHosts

配置说明
  • HashKnownHosts yes:启用哈希处理。
  • HashKnownHosts no:禁用哈希处理(默认值)。
nano退出命令
  1. 保存更改并退出
    • 按 Ctrl + O(写入文件,即保存)。
    • 按 Enter 确认保存。
    • 按 Ctrl + X 退出 nano
  2. 不保存更改并退出
    • 按 Ctrl + X
    • 当提示是否保存修改时,按 N(不保存)。

远程拷贝,scp

scp(Secure Copy)命令用于在本地和远程主机之间安全地复制文件。scp 使用 SSH 协议进行加密传输,确保数据的安全性

scp [选项] [源文件] [目标文件]

常用选项

  • -P:指定远程主机的 SSH 服务端口(默认为 22)。
  • -p:保留文件的修改时间、访问时间和模式。
  • -q:静默模式,不显示传输进度。
  • -r:递归复制目录。
  • -C:启用压缩。
  • -i:指定用于身份验证的私钥文件。
  • -v:增加调试信息的详细程度。
示例

远程主机 1.1.1.1 上的 /home/kali/.bashrc 文件复制到本地当前目录下的 Copiedbashrc 文件

scp root@1.1.1.1:/home/kali/.bashrc Copiedbashrc
  • root@1.1.1.1:指定远程主机的用户名和 IP 地址。
    • root:远程主机的用户名。
    • 1.1.1.1:远程主机的 IP 地址。
  • /home/kali/.bashrc:远程主机上的源文件路径。
  • Copiedbashrc:本地目标文件名
    将本地文件 passwd 复制到远程主机的 /home/kali 目录下
scp -p passwd root@127.0.0.1:/home/kali/

详细解释

  • scp:命令本身,用于安全复制文件。
  • -p:保留文件的修改时间、访问时间和模式。
  • passwd:本地文件的路径。
  • root@127.0.0.1:/home/kali/:远程主机的用户名、IP 地址和目标路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2239584.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“高级Java编程复习指南:深入理解并发编程、JVM优化与分布式系统架构“

我的个人主页 接下来我将方享四道由易到难的编程题,进入我们的JavaSE复习之旅。 1:大小写转换------题目链接 解题思路: 在ASCII码表中,⼤写字⺟A-Z的Ascii码值为65- 90,⼩写字⺟a-z的Ascii码值为97-122。每个字 ⺟…

SQL面试题——飞猪SQL面试 重点用户

飞猪SQL面试题—重点用户 在一些场景中我们经常听到这样的一些描述,例如20%的用户贡献了80%的销售额,或者是20%的人拥有着80%的财富,你知道这样的数据是怎么算出来的吗 数据如下,uid 是用户的id ,amount是用户的消费金额 |uid|amount| ---…

操作系统OS--进程

目录 操作系统是什么 进程 进程的状态 1.并行和并发 2.时间片 进程优先级 进程切换 task_struct内容分类: 操作系统是什么 操作系统本质上是一款纯正的“搞管理”的软件 你的程序不能直接写入硬件,都必须通过操作系统 对软硬件之间进行交互&…

Spring——容器:IoC

容器:IoC IoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。 Spring 通过 IoC 容器来…

全自动火腿肉馅斩拌机:

全自动火腿肉馅斩拌机通过斩切作用提高产品的细密度和弹性,广泛应用于肉制品的深加工制作,如制作肉丸、香肠等。其工作原理是利用斩刀高速旋转的斩切作用,将原料进行斩切和乳化处理,从而提高产品的细腻度和弹性。斩拌机具有以下特…

音视频入门基础:MPEG2-TS专题(3)——TS Header简介

注:本文有部分内容引用了维基百科:https://zh.wikipedia.org/wiki/MPEG2-TS 一、引言 本文对MPEG2-TS格式的TS Header进行简介。 进行简介之前,请各位先下载MPEG2-TS的官方文档。ITU-T和ISO/IEC都分别提供MPEG2-TS的官方文档。但是ITU提供的…

NCC前端调用查询弹框

系统自带的查询模板 弹框 调启使用默认的 查询模板 是在 单据模板的 列表模板中,有个查询区域 ,查询区域就是查询模板内容如果在列表页做客开 新增按钮 调启查询模板 无问题,但是目前需求是需要再卡片页面下调启系统标准的调启模板代码 //调…

第8章 利用CSS制作导航菜单

8.1 水平顶部导航栏 水平菜单导航栏是网站设计中应用范围最广的导航设计&#xff0c;一般放置在页面的顶部。水平导航适用性强&#xff0c;几乎所有类型的网站都可以使用&#xff0c;设计难度较低。 8.1.1 简单水平导航栏的设计与实现 8.1.1.1导航栏的创建 <nav>标签…

labview拆解日期字符串

今天在写测试时&#xff0c;发现有些时候需要把日期和时间拆分开来&#xff0c;由于项目采集到的日期是一个数字字符串&#xff0c;需要把他们转换成带日期格式的字符串分别显示&#xff0c;这里还是用到了数组到电子表格字符串转换的函数。 下面示例如下&#xff0c;首先我们…

Kafka - 启用安全通信和认证机制_SSL + SASL

文章目录 官方资料概述制作kakfa证书1.1 openssl 生成CA1.2 生成server端秘钥对以及证书仓库1.3 CA 签名证书1.4 服务端秘钥库导入签名证书以及CA根证书1.5 生成服务端信任库并导入CA根数据1.6 生成客户端信任库并导入CA根证书 2 配置zookeeper SASL认证2.1 编写zk_server_jass…

Ubuntu22.04安装DataEase

看到DataEase的驾驶舱&#xff0c;感觉比PowerBI要好用一点&#xff0c;于是搭建起来玩玩。Dataease推荐的操作系统是Ubuntu22.04/Centos 7。 下载了Ubuntu22.04和DataEase 最新版本的离线安装包 一.安装ubuntu22.04 在安装的时候&#xff0c;没有顺手设置IP地址信息&#xff…

使用iviewui组件库的坑

背景 使用view-design组件库的Input组件的时候&#xff0c;按照产品的要求&#xff0c;输入框中只能键入正整数。 使用效果 如果直接使用组件的type属性&#xff0c;设置类型为number时&#xff0c;乍一看没啥问题&#xff0c;但是当我们键入 小数点(.) 或者 e/E 后面没有跟任…

AI绘图最强软件stable diffusion,一文带你迅速了解!

有需要stable diffusion整合包可以扫描下方&#xff0c;免费获取 01 — 什么是 SD ​ Stable Difusion(简称 SD) 其三种概念。 1.用来指代稳定扩散(Stable Diffusion) 技术,如 Midjourney是基于Stable Difusion技术实现的就是指它运用了 Stable Diffusion 的技术原理。 …

Unity3D实现视频和模型融合效果

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、效果展示如下👉二、VideoPlayer播放视频(一)👉2-1、Hieraechy面板右键创建videoPlayer👉2-2、Assets面板右键创建RenderTexture👉2-3、把设置好的RenderTexture拖到videoPlayer里面还有本地视频视频�…

stm32 ADC实例解析(3)-多通道采集互相干扰的问题

文章目录 一、问题现象&#xff1a;二、原因分析&#xff1a;1、测量值不准问题分析&#xff1a;2、采样干扰问题分析 三、解决办法&#xff1a;1、硬件&#xff1a;&#xff08;1&#xff09;、电源供电&#xff08;2&#xff09;、引脚电容&#xff08;3&#xff09;、减少采…

springboot 医院住院管理系统,计算机毕业设计项目源码035,计算机毕设程序(LW+开题报告、中期报告、任务书等全套方案)

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;医院当然也不例外。医院住院管理系统是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;采用J…

Redis集群模式之Redis Sentinel vs. Redis Cluster

在分布式系统环境中&#xff0c;Redis以其高性能、低延迟和丰富的数据结构而广受青睐。随着数据量的增长和访问需求的增加&#xff0c;单一Redis实例往往难以满足高可用性和扩展性的要求。为此&#xff0c;Redis提供了两种主要的集群模式&#xff1a;Redis Sentinel和Redis Clu…

谷歌浏览器的自动翻译功能如何开启

在当今全球化的网络环境中&#xff0c;能够流畅地浏览不同语言的网页是至关重要的。谷歌浏览器&#xff08;Google Chrome&#xff09;提供了一项强大的自动翻译功能&#xff0c;可以帮助用户轻松跨越语言障碍。本文将详细介绍如何开启和使用谷歌浏览器的自动翻译功能&#xff…

中文书籍对《人月神话》的引用(161-210本):微软的秘密

中文书籍对《人月神话》的引用&#xff08;第001到160本&#xff09;>> 《人月神话》于1975年出版&#xff0c;1995年出二十周年版。自出版以来&#xff0c;该书被大量的书籍和文章引用&#xff0c;直到现在热潮不退。 2023年&#xff0c;清华大学出版社推出《人月神话》…

Docker了解

Docker是一种容器化技术&#xff0c;它可以将应用程序和其依赖项打包到一个独立的、可移植的容器中&#xff0c;以便在不同的环境中运行。Docker基于Linux操作系统的容器化技术&#xff0c;可以提供更轻量、更快速、更灵活、更一致的应用部署和管理方式。 Docker的基本概念包括…