Linux中ssh远程登录系统和远程拷贝
本章主要介绍ssh远程登录系统和远程拷贝的方法
- ssh的基本用法
- 打开远程图形化界面
- ssh无密码登录和安全操作
- Windows远程登录
- 远程拷贝
很多时候服务器并没有显示器,我们也不可能每次都通过控制台去管理服务器,这时就需 要远程登录。远程登录到服务器可以通过Telnet或ssh的方式。但是用Telnet登录,整个过 程都是以明文的方式传输的,不安全。所以,建议使用ssh的方式来登录,因为ssh在整个连 接过程中,数据都是加密的
实验拓扑两台Linux操作系统
redhat8和node1
redhat中有aaa用户和jin用户,node1中只有jin用户
1.1 ssh的基本用法
ssh的基本用法1:
ssh 主机名 /IP
这里如果没有指定用什么用户连接,则以当前用户连接
当第一次远程连接到服务器时,要记录服务器的公钥指纹信息
[root@redhat8 ~]# ssh 192.168.161.12
上面如果输入的是no,则连接终止。输入yes,则保存在了当前用户家目录下 的.ssh/known_hosts文件中
如果使用aaa用户进行登录,连续输入3次密码不正确就会退出了,因为192.168.161.12上没有aaa用户,但是有jin用户
ssh的基本用法2:
1. ssh 0l 用户名 主机名 /IP
2. 用户名@主机名 /IP
建议用第2个。现在以jin的身份连接
[root@redhat8 ~]# ssh jin@192.168.161.12
jin@192.168.161.12's password:
[jin@node1 ~]$
可以看到,此时已经正常连接过去了,要退出来时只要输入“exit”即可
[jin@node1 ~]$ exit
登出
Connection to 192.168.161.12 closed.
[root@redhat8 ~]#
1.2 打开远程图形化界面
当远程连接到远端机器时,例如,从 redhat8上通过jin用户连接到node1
[root@redhat8 ~]# ssh jin@192.168.161.12
jin@192.168.161.12's password:
Last login: Fri Dec 1 11:08:34 2023 from 192.168.161.16
[jin@node1 ~]$ firefox
Failed to open connection to "session" message bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Running without a11y support!
Error: no DISPLAY environment variable specified
[jin@node1 ~]$
然后执行firefox命令,出现了“Error: no DISPLAY environment variable specified”的错误提示。这是为什么呢?首先我们了解一下 Xserver和 Xclient
每个打开的图形化界面的工具,例如,终端、 Firefox浏览器、gedit记事本等,这些都叫作 Xclient,这些Xclient必须在 Xserver上运行。 Xserver是一个平台环境,安装系统时如果选择 了图形化界面,那么Xserver就已经安装上去 了,如图
要是想在本机打开远端服务器的Xclient,即图形化客户端,需要满足以下3个条件
(1)通过ssh登录到服务器时,要加上-X(大写的X)选项
因为ssh建立的连接默认只允许字符传输,不允许Xclient进行传输,加上-X选项之后就可以 让Xclient通过ssh建立的连接传输
(2)本地要运行Xserver
(3)远端服务器要安装xorg-x11-xauth,默认是已经安装上去了的
现在退出来,重新通过ssh连接过去,加上-X选项,命令如下
[root@redhat8 ~]# ssh jin@192.168.161.12 -X
jin@192.168.161.12's password:
Last login: Fri Dec 1 11:16:30 2023 from 192.168.161.16
/usr/bin/xauth: file /home/jin/.Xauthority does not exist
[jin@node1 ~]$
1.3 ssh无密码登录
ssh远程登录到服务器时有两种认证方式
1.3.1 密码认证
前面在redhat8上通过ssh连接到node1时需要输入密码才能正常登录,这种就是密码认证
1.3.2 密钥认证
如果做了密钥认证,远程登录时不需要密码就可以直接登录
需要生成一个密钥对
[aaa@redhat8 ~]$ ssh-keygen -f ~/.ssh/id_rsa -N ""
Generating public/private rsa key pair.
Your identification has been saved in /home/aaa/.ssh/id_rsa.
Your public key has been saved in /home/aaa/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:D6UKYyQIyqkWhvPj3p+22Q4GppGHL+jYtKo+rt67O/g aaa@redhat8
The key's randomart image is:
+---[RSA 3072]----+
|. |
|=.. |
|==. . . |
|oo.= o |
|..* B S |
|.o O + . o |
|. * . + . |
|o*.= ..= |
|@**E*o=oo |
+----[SHA256]-----+
[aaa@redhat8 ~]$
这条命令会生成一个密钥对(私钥和公钥),这里-f指定了生成私钥的路径和名称,如果 不指定,默认也是这个路径。-N后面的双引号中没有空格,意思是不对生成的私钥加密
这样aaa生成了自己的密钥对,存放在自己家目录的.ssh目录下
[aaa@redhat8 ~]$ ls .ssh/
id_rsa id_rsa.pub known_hosts
[aaa@redhat8 ~]$
其中id_rsa是私钥,id_rsa.pub是公钥
然后通过ssh-copy-id把公钥的内容存储在jin@node1的家目录下的.ssh/authorized_keys文件中,如果没有此文件,拷贝过去之后会自动创建
[root@node1 ~]# ls .ssh
ls: 无法访问.ssh: 没有那个文件或目录
[root@node1 ~]#
下面执行ssh-copy-id命令
[aaa@redhat8 ~]$ ssh-copy-id jin@192.168.161.12
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/aaa/.ssh/id_rsa.pub"
/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
jin@192.168.161.12's password: Number of key(s) added: 1Now try logging into the machine, with: "ssh 'jin@192.168.161.12'"
and check to make sure that only the key(s) you wanted were added.[aaa@redhat8 ~]$
这样aaa的公钥就存放在jin@node1家目录下的.ssh/authorized keys文件中了
[jin@node1 ~]$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDI3ngWP/jf8809s1EOyXI9CnLu92iYEfJqxvj09nvHDrEgUb4PT0+RLkys/sqzViYdtQvOKhGgXqCsU29PZZXNQPgisbF2+7w7H3XvOlSPH/3p0/9HgMHDghHOH3G6A/dMcqh+KRWcz/6U8wzNtk6TBcZL8ovT64erHigx/hMlgE0fP/fX6SnFUFgpFVUSGEAszxzl6oPkSXTITH2U8/1n3rZMNKL9GxPmFLMSg5e5VlJSCjOIxlzDePmgeGJkvEx79ZMqNzEJ4AFl7gkpCOmx1STe415lPFS2m+Xgvrvz0og12Ojy+9lTeIA1iFiDUZxP4GeUhMM9wHU6qfZbT2+uTxx/va+4pu6NEmzYb30VvmknMIaVU0fDwlW0WMhaawOVd7bYqF6MfhAnl191aYGy823N4rkvijIdAjlO5MitJNO8+6+9hhTDAV0TlycUL7KASzS13r6Kdq5yFP5aBBJ+TpoczJkjdXnQUGywRrUJ/xck5HJu+tlB9dF88g1NSSk= aaa@redhat8
[jin@node1 ~]$
通过对比,发现这个文件的内容就是 aaa@redhat的公钥的内容
下面远程登录测试
[aaa@redhat8 ~]$ ssh jin@192.168.161.12
Last login: Fri Dec 1 11:48:58 2023 from 192.168.161.1
[jin@node1 ~]$
可以看到,已经无密码登录过去了
1.4 ssh安全设置
前面已经讲了,ssh有两种认证方式:密码认证和密钥认证。aaa@redhat到jin@node1用的是密钥认证,其他用户的登录方式仍然是密码登录,现在想设置只能用 其中一种认证,是否可以?答案是可以的
1.4.1 禁用密钥登录
在node1中,以 root用户编辑/etc/ssh/sshd_config,找到 PubkeyAuthentication, 修改内容如下
将#PubkeyAuthentication yes修改为PubkeyAuthentication no(需要注意的是,这里 前面的注释符#被删除了),这样就禁用了密钥登录,保存退出并重启sshd
[root@node1 ~]# systemctl restart sshd
[root@node1 ~]#
此时已经禁用了密钥登录,只能密码登录,到 redhat上进行测试
[aaa@redhat8 ~]$ ssh jin@192.168.161.12
jin@192.168.161.12's password:
Last login: Fri Dec 1 11:50:06 2023 from 192.168.161.16
[jin@node1 ~]$
这里只能使用密码登录,原来配置的密钥认证不再生效
再次设置允许密钥登录(PubkeyAuthentication yes),修改内容如下
将PubkeyAuthentication no修改为PubkeyAuthentication yes,并重启sshd,命令如下
[root@node1 ~]# systemctl restart sshd
[root@node1 ~]#
1.4.2 禁止密码登录
在node1上,以root用户编辑/etc/ssh/sshd_config,找到PasswordAuthentication, 修改内容如下
将PasswordAuthentication yes修改为PasswordAuthentication no,这样就禁用了密 码登录,保存退出并重启sshd
[root@node1 ~]# systemctl restart sshd
[root@node1 ~]#
此时只允许密钥登录,不允许密码登录
为了方便测试,在node1上创建用户bbb,密码设置为123.123
[root@node1 ~]# useradd bbb
[root@node1 ~]# echo 123.123 | passwd --stdin bbb
更改用户 bbb 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node1 ~]#
在redhat上进行验证,首先以jin身份连接过去
[aaa@redhat8 ~]$ ssh jin@192.168.161.12
Last login: Fri Dec 1 11:55:51 2023 from 192.168.161.16
[jin@node1 ~]$
可以看到,使用tom登录192.168.26.102时是可以无密码登录的
然后以bbb身份连接过去
[aaa@redhat8 ~]$ ssh bbb@192.168.161.12
bbb@192.168.161.12: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[aaa@redhat8 ~]$
因为我们并没有做bbb用户无密码登录到node1,只能使用密码登录,而密码登录被禁用, 所以bbb登录失败
自行设置允许密码登录,修改/etc/ssh/sshd_config
将PasswordAuthentication no修改为PasswordAuthentication yes,并重启sshd
[root@node1 ~]# systemctl restart sshd
[root@node1 ~]#
再次使用bbb用户登录
[aaa@redhat8 ~]$ ssh bbb@192.168.161.12
bbb@192.168.161.12's password:
Last failed login: Fri Dec 1 12:07:28 CST 2023 from 192.168.161.16 on ssh:notty
There were 3 failed login attempts since the last successful login.
[bbb@node1 ~]$
已经可以正常登录了
1.5 ssh限制用户
对于服务器上的有效用户,基本上都是可以通过 ssh 连按过去的,但是有时为了安全性 要禁用某些用户登录,如禁用root等
1.5.1 禁用root用户登录
默认情况下,是可以用root登录到远端服务器的
[aaa@redhat8 ~]$ ssh root@192.168.161.12
root@192.168.161.12's password:
Last login: Fri Dec 1 11:01:05 2023 from 192.168.161.16
[root@node1 ~]#
如果要禁用root用户登录,在server2一用vim编辑哭打开/eto/ssh/sshd_config,按如下内容修改
将PermitRootLogin yes修改为PermitRootLogin no,保存退出并重启sshd
[root@node1 ~]# systemctl restart sshd
[root@node1 ~]#
此时就禁用root用户登录了,在redhat上进行验证
[aaa@redhat8 ~]$ ssh root@192.168.161.12
root@192.168.161.12's password:
Permission denied, please try again.
root@192.168.161.12's password:
提示被拒绝,是因为不允许root用户登录,按【Ctrl+C】组合键终止
如果允许root用户登录,将PermitRootLogin no修改为PermitRootLogin yes,然后重启sshd 即可
1.5.1 禁用普通用户登录
如果想禁用某普通用户,可以用DenyUsers选项实现,用法是打开/etc/ssh/sshd_config, 在任意一行添加 DenyUsers userX,就可以限制userX ssh登录了。如果需要在server2上禁 用bob用户ssh登录,可以用vim 编辑器打开/etc/ssh/sshd_config,在任意一行添加 DenyUsersbob,命令如下
这里就是禁用bob用户ssh 登录,保存退出并重启sshd,然后到redhat上进行测试
[aaa@redhat8 ~]$ ssh bbb@192.168.161.12
bbb@192.168.161.12's password:
Permission denied, please try again.
bbb@192.168.161.12's password:
提示被拒绝,是因为bbb用户被限制登录了,按【Ctrl+C】组合键终止
这里只是禁用了bbb用户,并不影响其他用户登录
类似的选项还有AllowUsers和 DenyGroups
其中AllowUsers userX的意思是,只允许userX用户登录,不允许其他用户登录
如果写成AllowUsers userX userY,意思是只允许userX和userY登录,不允许其他用户登录
如果以下两个条目同时出现:
则 DenyUsers生效,bob仍然是不能登录的
1.6 Windows远程登录
很多时候服务器上安装的是 Linux系统,但我们平时用的笔记本电脑是Windows系统, 如果要使用Windows远程登录,只要在Windows上安装ssh客户端,就可以登录到远端的 Linux服务器了。Windows中常见的ssh客户端包括PuTTY、Xshell、SecureCRT 等
Windows中的这些客户端,大家根据自己的喜好自行下载使用即可
1.7 远程拷贝
有时我们需要远程拷贝一些文件,例如,把文件或目录从A机器拷贝到B机器上,这种情 况下我们一般用scp或rsync
scp或 rsync利用的是ssh建立的通道,然后把文件传输过去,scp的用法如下
scp /path1/file1 remoteIP:/path2/
这里的意思是把本地的/path1/file1铂贝到remoteIP这台机器的/path2目录中。需要注意的是,远程主机上目录的表示方式是“IP:目录”,冒号两边没有空格。如果拷贝目录需加上选项
先查看node1上/opt目录中的内容
[root@node1 ~]# ls /opt/
[root@node1 ~]#
然后到redhat上拷贝 /etc/hosts到server2上的/opt目录中
[root@redhat8 ~]# scp /etc/hosts 192.168.161.12:/opt
root@192.168.161.12's password:
hosts 100% 158 78.6KB/s 00:00
[root@redhat8 ~]#
这样就把文件拷贝过去了,scp利用的是ssh建立的通道,如果没有指定使用哪个用户接到 192.168.161.12,则使用的是当前用户 root
下面以jin身份登录192.168.161.12并拷贝文件
[root@redhat8 ~]# scp /etc/hosts jin@192.168.161.12:/opt
jin@192.168.161.12's password:
scp: /opt/hosts: Permission denied
[root@redhat8 ~]#
因为192.168.161.12上的jin用户对/opt没有写权限,所有拷贝过去时出现了“Permission denied”这样的报错信息
把目录/boot/grub2拷贝到node1上的/opt目录中
[root@redhat8 ~]# scp /boot/grub2/ 192.168.161.12:/opt
root@192.168.161.12's password:
/boot/grub2: not a regular file
[root@redhat8 ~]#
结果是没有拷贝过去,因为/boot/grub2是一个目录,拷贝目录需要加上r选项
这样就把该目录拷贝过去了,到node1上查看
[root@node1 ~]# ls /opt/
grub2 hosts
[root@node1 ~]#
清空node1上/opt中的内容
[root@node1 opt]# rm -rf /*
[root@node1 opt]# ls
[root@node1 opt]#
相关文章:
Linux中ssh远程登录系统和远程拷贝
本章主要介绍ssh远程登录系统和远程拷贝的方法 ssh的基本用法打开远程图形化界面ssh无密码登录和安全操作Windows远程登录远程拷贝 很多时候服务器并没有显示器,我们也不可能每次都通过控制台去管理服务器,这时就需 要远程登录。远程登录到服务器可以通…...
git常用命令小记
(文章正在持续更新中) git init - 在当前目录下初始化一个新的 Git 仓库。 git clone [url] - 克隆远程仓库到本地。 git add [file] - 将文件添加到暂存区。 git commit -m "commit message" - 将添加到暂存区的文件提交到本地仓库。 git pus…...
深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动
文章目录 前言一、输入系统的基本组成部分二、输入系统相关源码分析1、IMS 构建1.1、SystemServer # startOtherServices()1.2、InputManagerService1.3、NativeInputManager # nativeInit()1.4、NativeInputManager1.5、InputManager1.6、InputDispatcher1.7、InputReader1.8、…...
SoC with CPLD and MCU ?
AG32 MCU 产品支持多种接口外设,具备与业界主流产品的兼容性,并内置额外的2K FPGA 可编程逻辑。 产品支持 LQFP-48,LQFP-64,LQFP-100 ,QFN-32等不同封装。其所有可用 IO 都可以任意地进行映射和互换,以灵活…...
基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(二)——数据清洗、转换
2 数据清洗、转换 此实验使用S3作为数据源 ETL: E extract 输入 T transform 转换 L load 输出 大纲 2 数据清洗、转换2.1 架构图2.2 数据清洗2.3 编辑脚本2.3.1 连接数据源(s3)2.3.2. 数据结构转换2.3.2 数据结构拆分…...
vuepress-----6、时间更新
# 6、时间更新 基于Git提交时间修改文字时间格式 moment # 最后更新时间 # 时间格式修改 下载库文件 yarn add momentconst moment require(moment); moment.locale(zh-cn)module.exports {themeConfig: {lastUpdated: 更新时间,},plugins: [[vuepress/last-updated,{trans…...
C++ ini配置文件的简单读取使用
ini文件就是简单的section 下面有对应的键值对 std::map<std::string, std::map<std::string, std::string>>MyIni::readIniFile() {std::ifstream file(filename);if (!file.is_open()) {std::cerr << "Error: Unable to open file " << …...
【稳定检索|投稿优惠】2024年经济管理与安全科学国际学术会议(EMSSIC 2024)
2024年经济管理与安全科学国际学术会议(EMSSIC 2024) 2024 International Conference on Economic Management and Security Sciences(EMSSIC 2024) 一、【会议简介】 2024年经济管理与安全科学国际学术会议(EMSSIC 2024),将于繁华的上海城召开。这次会议的主题是“…...
什么是网站?
这篇文章是我学习网站开发,阶段性总结出来的。可以帮助你 通俗易懂 地更加深刻理解网站的这个玩意。 一,网站和网页的区别? 网站是由一个个网页组成。我们在浏览器上面看到的每一个页面就是网页,这些 相关的 网页组成一个网站。…...
pg_stat_replication.state 含义
在PostgreSQL中,pg_stat_replication视图提供了有关连接到主服务器的流式复制进程(备用服务器)的信息。该视图中的一个列是state,它指示复制进程的当前状态。 state列可以具有各种值: startup: This WAL sender 刚开始运行 catc…...
JavaWeb(六)
一、Maven的常用命令 maven的常用命令有:compile(编译)、clean(清理)、test(测试)、package(打包)、install(安装)。 1.1、compile(编译) compile(编译)的作用有如下两点: 1、从阿里云下载编译需要的jar包,在本地仓库也能看到下载好的插件(远程仓库配置的是阿里…...
GPIO的使用--时钟使能含义--代码封装
目录 一、时钟使能的含义 1.为什么要时钟使能? 2.什么是时钟使能? 3.GPIO的使能信号? 二、代码封装 1.封装前完整代码 2.封装结构 封装后代码 led.c led.h key.c key.h main.c 一、时钟使能的含义 1.为什么要时钟使能?…...
最小化安装 Neokylin7.0 用于搭建 Hadoop 集群
文章目录 环境搭建背景虚拟机创建和环境配置安装过程注意事项虚拟机设置软件选择KOUMP系统分区网络和主机名打开以太网,并记录信息配置 IPv4修改主机名 创建用户 hadoop完全分布式搭建-CSDN博客 环境搭建背景 为什么不从hadoop100或者hadoop101开始,而是…...
苍穹外卖面试题-中
8. 如何理解分组校验 很多情况下,我们会将校验规则写到实体类中的属性上,而这个实体类有可能作为不同功能方法的参数使用,而不同的功能对象参数对象中属性的要求是不一样的。比如我们在新增和修改一个用户对象时,都会接收User对象…...
Python 重要数据类型
目录 列表 序列操作 列表内置方法 列表推到式 字典 声明字典 字典基本操作 列表内置方法 字典进阶使用 字典生成式 附录 列表 在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用。列表就是这样的…...
03、pytest初体验
官方实例 # content of test_sample.py def func(x):return x 1def test_ansewer():assert func(3) 5步骤解释 [100%]指的是所有测试用例的总体进度,完成后,pytest显示一个失败报告,因为func(3)没有返回5 注意:你可以使用ass…...
智能指针及强相关知识经验总结 --- 移动语义、引用计数、循环引用、move()、自定义删除器等
目录 前言 一、shared_ptr 1. 基本用法和构造方法 2. 引用计数机制 3. weak_ptr 解决循环引用 二、unique_ptr 1. 基本用法和构造方法 2. 独占性 3. 所有权转移 1)unique_ptr :: release() 2)移动语义 和 move() 三、 对比 shared_ptr 和 un…...
Gson 自动生成适配器插件
在json解析方面 我们常见有下面几方面困扰 1. moshi code-gen能自动生成适配器,序列化效率比gson快,但是自定义程度不如gson,能java kotlin共存 且解决了默认值的问题 2.gson api 强大自由,但是 第一次gson的反射缓存比较慢,而且生成对象都是反射,除非主动注册com.google.gson…...
React创建项目
React创建项目 提前安装好nodejs再进行下面的操作,通过node -v验证是否安装 1.设置源地址 npm config set registry https://registry.npmmirror.com/2.确认源地址 npm config get registry返回如下 https://registry.npmmirror.com/3.输入命令 npx create-re…...
Redis5新特性-stream
Stream队列 Redis5.0 最大的新特性就是多出了一个数据结构 Stream,它是一个新的强大的 支持多播的可持久化的消息队列,作者声明 Redis Stream 地借鉴了 Kafka 的设计。 生产者 xadd 追加消息 xdel 删除消息,这里的删除仅仅是设置了标志位&am…...
删除PPT文件的备注内容
解决方案的工作经常汇报以及经常做ppt的回报工作,但是删除备注很痛苦。 在网上或者拿历史的ppt文件修改后,需要删除ppt备注内容以及删除ppt个人文件信息的办法: 现象:很多备注信息,需要删除 解决办法一、 文件--信息-…...
2023年亚太杯APMCM数学建模大赛B题玻璃温室小气候调控
2023年亚太杯APMCM数学建模大赛 B题 玻璃温室小气候调控 原题再现 温室作物的产量受各种气候因素的影响,包括温度、湿度和风速[1]。其中,适宜的温度和风速对植物生长至关重要[2]。为了调节玻璃温室内的温度、风速等气候因素,在温室设计中常…...
Oracle 查询语句限制只选择最前面几行,和最后面几行的实现方式。
查询最前面几行 在Oracle中,可以使用 ROWNUM 关键字来限制查询结果的行数。要选择前10条记录,可以使用以下查询语句: SELECT * FROM your_table WHERE ROWNUM < 10;实际查询时将your_table替换为要查询的表名。以上查询将返回表中的前10…...
.NET Core6.0 MVC+layui+SqlSugar 简单增删改查
HTML部分: {ViewData["Title"] "用户列表"; } <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>用户列表</title><meta name"renderer" content"webkit"><meta …...
在 Mac 上使用浅色或深色外观
在 Mac 上,选取苹果菜单 >“系统设置”,然后点按边栏中的“外观” 。(你可能需要向下滚动。)选择右侧的“浅色”、“深色”或“自动”。 “浅色”表示不会发生变化的浅色外观。 “深色”表示不会发生变化的深色外观。“深色模式…...
华为手环关闭智能适时测量
问题 使用华为手环并使用华为创新研究APP后,会自动打开智能适时测量开关,此开关开启后,手环会在睡眠时间自动测量血氧,增加手环功耗从而影响续航,用户可根据自身需求决定是否开启,下文介绍如何找到此开关。…...
1-Hadoop原理与技术
单选题 题目1:安装Hadoop集群时,是在哪个文件指定哪些机器作为集群的从机? 选项: A datanode B slaves C yarn-site.xml D core-site.xml 答案:B ------------------------------ 题目2:Hadoop配置文件所在目录是哪…...
YoloV5改进策略:Swift Parameter-free Attention,无参注意力机制,超分模型的完美迁移
摘要 https://arxiv.org/pdf/2311.12770.pdf https://github.com/hongyuanyu/SPAN SPAN是一种超分网络模型。SPAN模型通过使用参数自由的注意力机制来提高SISR的性能。这种注意力机制能够增强重要信息并减少冗余,从而在图像超分辨率过程中提高图像质量。 具体来说,SPAN模…...
DAPP开发【04】测试驱动开发
测试驱动开发(Test Driven Development),是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,…...
Raspberry Pi 2, 2 of n - Pi 作为 IoT 消息代理
目录 介绍 环境 先决条件 - 设置静态 IP 地址 安装 Mosquitto 启动/停止 Mosquitto 配置先决条件 - 安装 mqtt_spy 配置 Mosquitto 配置 Mosquitto - 无安全性 测试 Mosquitto 配置 - 无安全性 配置 Mosquitto - 使用密码身份验证 Mosquitto 测试 - 带密码验证 概括 介绍 在本文…...
美工外包网站/潍坊seo计费
::selection{ background: orange; color: white;} ::-moz-selection{ background: orange; color: white;} (//Firefox浏览器)转载于:https://www.cnblogs.com/SunnyYYN/p/7279577.html...
网站域名如何从代理商那里转出来/旺道seo优化
什么是统计机器学习/统计学习/机器学习? 三个词指的都是同一概念,这里统一简称为机器学习,指的是计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。 实现机器学习的步骤是什么? 得到有限的训练数据集…...
js网站登录怎么做/qq群推广网站
Description 给你一个无向图,N(N<500)个顶点, M(M<5000)条边,每条边有一个权值Vi(Vi<30000)。给你两个顶点S和T,求一条路径,使得路径上最大边和最小边的比值最小。如果S和T之间没有路径,输出”IMPOSSIBLE”&a…...
佛教网站大全网/办理培训机构需要具备的条件
1、在Java中,没有goto语句。因为大量使用goto语句会降低程序的可读性和可维护性,所以Java语言取消了goto的使用。同时,为了避免程序员自行使用goto所带来的混乱,Java语言仍将goto定义为一个关键字,但是没有定义任何语法…...
企业网站建设商城/云南网站seo服务
Go 时间戳 程序的一个通常需求是计算从Unix起始时间开始到某个时刻的秒数,毫秒数,微秒数等。 我们来看看Go里面是怎么做的。package main import "fmt" import "time" func main() { // 使用Unix和UnixNano来分别获取从Unix起始时间…...
做网站的怎样能翻页/宁波seo推广哪家好
一、什么是敏捷宣言? 敏捷宣言(Manifesto for Agile Software Development),也叫做敏捷软件开发宣言,正式宣布了对四种核心价值和十二条原则,可以指导迭代的以人为中心的软件开发方法。敏捷软件开发关注保持…...