`
lalaeye
  • 浏览: 15431 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

centos ssh 无密码登陆配置

阅读更多

在第一次配置hadoop集群的时候,遇到ssh不能无密码登陆问题

(如果不想看详细,可以看最后总结:授权文件 authorized_keys 和.ssh目录除owner外都不允许有w权限 

 

1、服务器三台, 系统均为centos: TT1, TT2, TT3

每台服务器都创建了hadoop账户, 

/usr/sbin/useradd hadoop   #添加用户
passwd hadoop       #修改密码
  进入/home/hadoop/.ssh/,生成秘钥,执行命令:
ssh-keygen -t rsa
cat  id_rsa.pub >>authorized_keys
 
2、把TT1上的authorized_keys复制到TT3上authorized_keys_from_tt1
scp authorized_keys hadoop@TT3:/home/hadoop/.ssh/

 并执行

cat  authorized_keys_from_tt1>>authorized_keys

 

3、在TT1上执行

ssh hadoop@TT3  的时候每次都需要输密码 

[hadoop@TT1 .ssh]$ ssh hadoop@TT3
hadoop@TT3's password: 
Last login: Wed May 28 17:11:29 2014 from TT3
[hadoop@TT3 ~]$ exit
logout
 
Connection to TT3 closed.
[hadoop@TT1 .ssh]$ 
[hadoop@TT1 .ssh]$ 
[hadoop@TT1 .ssh]$ ssh hadoop@TT3
The authenticity of host 'TT3 (192.168.174.223)' can't be established.
RSA key fingerprint is c3:c9:dd:59:35:e2:7c:27:18:ab:ca:6b:6f:79:a3:84.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'TT3,192.168.174.223' (RSA) to the list of known hosts.
hadoop@TT3's password: 
Last login: Wed May 28 17:24:39 2014 from 192.168.174.120
[hadoop@TT3 ~]$ exit
logout
 
 但是登陆TT2时第一次需要,后续就不需要;

比较后发现TT2上存在dsa,猜测可能是需要TT3上没有dsa

 

4、在TT3上执行 

ssh-keygen -t dsa
cat id_dsa.pub >>authorized_keys
[hadoop@TT3 .ssh]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_dsa.
Your public key has been saved in /home/hadoop/.ssh/id_dsa.pub.
The key fingerprint is:
3a:20:9b:91:97:93:41:d8:50:76:e5:30:0a:3d:dd:0c hadoop@TT3
[hadoop@TT3 .ssh]$ 
[hadoop@TT3 .ssh]$ cat id_dsa.pub >> authorized_keys
[hadoop@TT3 .ssh]$ 
  

5、在在TT1上执行 

[hadoop@TT1 .ssh]$ ssh hadoop@TT3
Last login: Wed May 28 17:25:08 2014 from 192.168.174.221
[hadoop@TT3 ~]$ 
 第一次需要,后续就不需要,配置成功;

 

更新,了解了一下这两个的区别,引用别人的描述可能更清楚一点, 参考链接:

http://blog.sina.com.cn/s/blog_6f31085901015agu.html

http://www.51know.info/system_base/openssl.html

 

如果能看一下标准可能会更清楚

DSA = Digital Signature Algorithm. based on discrete logarithms computation.
DES = Digital Encryption Standard. Obsolete standard.

 

 ---------------------------------------------------错误的分割线---------------------------------------------------------

 

上次以为是dsa的原因,查了dsa和rsa的区别之后,发现不应该是这个原因,所以把三台服务里的rsa和dsa秘钥全部删除,重新来一遍,同时也看到别人有提到是权限的问题,这次特意测试了一下,

还是全部使用rsa, 毕竟支持比较广泛;

步骤:

1、同样在第三台机器上添加秘钥;

 

2、在第二台机器上添加第一台的rsa之后,设置了权限

[hadoop@Test-02 .ssh]$ ll
total 16
-rw-rw-r-- 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
[hadoop@TeamTest-02 .ssh]$ chmod 600 authorized_keys
[hadoop@TeamTest-02 .ssh]$ ll
total 16
-rw------- 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
[hadoop@TeamTest-02 .ssh]$ 

 从第一台ssh登陆,一次性成功;

 

3、第三台添加了第一台的rsa之后,不做权限设置,直接从第一台ssh登陆,每次都要密码

[hadoop@Test-01 .ssh]$ ssh hadoop@192.168.30.223
hadoop@192.168.30.223's password: 
Last login: Tue Jun  3 15:23:08 2014 from 192.168.30.222
[hadoop@Test-03 ~]$ exit
logout

 然后和第二台机器一样设置权限

[hadoop@Test-03 .ssh]$ ll
total 16
-rw-rw-r-- 1 hadoop hadoop  800 Jun  3 15:22 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:19 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:19 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:19 id_rsa.pub
[hadoop@Test-03 .ssh]$ 
[hadoop@Test-03 .ssh]$ 
[hadoop@Test-03 .ssh]$ chmod 600 authorized_keys
[hadoop@Test-03 .ssh]$ ll
total 16
-rw------- 1 hadoop hadoop  800 Jun  3 15:22 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:19 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:19 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:19 id_rsa.pub
[hadoop@Test-03 .ssh]$ 

 效果出现了,从第一台直接登陆,不再需要密码了,因为前面一次已经输入过密码

[hadoop@Test-01 .ssh]$ ssh hadoop@192.168.30.223
Last login: Tue Jun  3 15:24:14 2014 from 192.168.30.221
[hadoop@Test-03 ~]$ exit
logout

 同时也验证了我的想法,两者都可以用。

 

另外也可以使用ssh -v hadoop@192.168.30.223 进行测试连接

[hadoop@Test-01 ~]$ ssh -v localhost
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: Connection established.
debug1: identity file /home/hadoop/.ssh/identity type -1
debug1: identity file /home/hadoop/.ssh/id_rsa type 1
debug1: identity file /home/hadoop/.ssh/id_dsa type -1
debug1: loaded 3 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'localhost' is known and matches the RSA host key.
debug1: Found key in /home/hadoop/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found

debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found

debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found

debug1: Next authentication method: publickey
debug1: Trying private key: /home/hadoop/.ssh/identity
debug1: Offering public key: /home/hadoop/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/hadoop/.ssh/id_dsa
debug1: Next authentication method: password
hadoop@localhost's password: 
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Tue Jun  3 15:20:33 2014 from teamtest-01

[hadoop@TeamTest-01 ~]$ exit
logout

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to localhost closed.
debug1: Transferred: stdin 0, stdout 0, stderr 33 bytes in 2.4 seconds
debug1: Bytes per second: stdin 0.0, stdout 0.0, stderr 14.0
debug1: Exit status 0
[hadoop@Test-01 ~]$ ll

后续再了解ssh如何进行调试

 

总结:ssh不输密码远程登录

1、使用 ssh-keygen -t rsa 添加秘钥

2、将客户端的公钥 id_rsa.pub 或者添加到 authorized_keys 复制到要远程登录的账户的home目录的.ssh目录下,没有.ssh目录则创建 (e.g.  /home/hadoop/.ssh)

3、添加客户端的公钥授权到服务器端的 authorized_keys 中

4、设置权限 chmod 600 authorized_keys

5、客户端尝试无密码登陆 ssh hadoop@192.168.30.222

6、如果有问题,尝试 ssh -v IP 进行测试,遇到问题到网上查一下原因

 ---------------------------------------------------rwx 的分割线---------------------------------------------------------

蛋疼的考虑权限600,可能会有400,那具体到什么情况是需要输入密码呢,继续测试

 

[hadoop@Test-02 .ssh]$ ll
total 20
-rwx------ 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop  396 Jun  3 15:20 known_hosts
[hadoop@Test-02 .ssh]$ chmod 740  authorized_keys 
[hadoop@Test-02 .ssh]$ ll
total 20
-rwxr----- 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop  396 Jun  3 15:20 known_hosts
[hadoop@Test-02 .ssh]$ chmod 760  authorized_keys 
[hadoop@Test-02 .ssh]$ ll
total 20
-rwxrw---- 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop  396 Jun  3 15:20 known_hosts
[hadoop@Test-02 .ssh]$ chmod 704  authorized_keys  
[hadoop@Test-02 .ssh]$ ll
total 20
-rwx---r-- 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop  396 Jun  3 15:20 known_hosts
[hadoop@Test-02 .ssh]$ chmod 706  authorized_keys 
[hadoop@Test-02 .ssh]$ ll
total 20
-rwx---rw- 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop  396 Jun  3 15:20 known_hosts
[hadoop@Test-02 .ssh]$ ll
total 20
-rwxr-xr-x 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop  396 Jun  3 15:20 known_hosts
[hadoop@Test-02 .ssh]$ 
 发现只要是组g和其他o存在权限w的情况下就需要输入密码,其余的000, ...,700, ..., 755都不需要输入密码,为什么呢,那就dig一下吧....

 ---------------------------------------------------dig的分割线---------------------------------------------------------

 

[hadoop@Test-01 ~]$ ssh -v 192.168.30.222
 太长了,就不贴了,看一下差异
debug1: Next authentication method: publickey
debug1: Trying private key: /home/hadoop/.ssh/identity
debug1: Offering public key: /home/hadoop/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
---------------------------------------------------------------------------------------
debug1: Next authentication method: publickey
debug1: Trying private key: /home/hadoop/.ssh/identity
debug1: Offering public key: /home/hadoop/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/hadoop/.ssh/id_dsa
debug1: Next authentication method: password
hadoop@192.168.30.222's password: 
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
 看一下,一个直接是公钥,一个还要密码,还要继续dig啊...
debug1: Authentication succeeded (publickey).
debug1: Next authentication method: password
既然是权限的问题,那就可以看日志了吧
[root@Test-02 ~]# tail -f /var/log/secure
Jun  6 18:33:10 Test-02 sshd[646]: pam_unix(sshd:session): session closed for user hadoop
Jun  6 18:33:11 Test-02 sshd[731]: Authentication refused: bad ownership or modes for file /home/hadoop/.ssh/authorized_keys
 看到了 
Jun  6 18:27:46 Test-02 sshd[731]: Authentication refused: bad ownership or modes for file /home/hadoop/.ssh/authorized_keys
 那这个又怎么解释呢?查别人的描述,只解决问题,没有原因;好吧,官方文档呢,那里去了,网站找起来太累,还是直接man ssh吧,找到了这么一段
~/.ssh/authorized_keys
             Lists the public keys (RSA/DSA) that can be used for logging in as this user.  The format of this file is described in the sshd(8) manual
             page.  This file is not highly sensitive, but the recommended permissions are read/write for the user, and not accessible by others.
 not accessible by others那也不是最终的方式,不是很清楚,那就看sshd(8) manual , 继续吧...
 捡来的一段描述
SSH doesn’t like it if your home or ~/.ssh directories have group write permissions. 
Your home directory should be writable only by you, ~/.ssh should be 700, and authorized_keys should be 600

You can also get around this by adding StrictModes off to your ssh_config file, 
but I’d advise against it - fixing permissions is the way to go.
 还是看代码比较清楚;那就下代码吧
 找到代码auth.c的383~387行,是不是就是这个原因?
	if ((stp->st_uid != 0 && stp->st_uid != uid) ||
	    (stp->st_mode & 022) != 0) {
		snprintf(err, errlen, "bad ownership or modes for file %s",
		    buf);
		return -1;
	}
 代码啊,什么意思呢?
  ---------------------------------------------------ssh code 的分割线---------------------------------------------------------
stp->st_uid != 0 && stp->st_uid != uid
     用户存在,并且不是自己
(stp->st_mode & 022) != 0
     模式与十进制022进行与运算,按照下面规则转换:
二进制:   1   1   1   1  1  1  1  1
十进制: 128  64  32  16  8  4  2  1
    就是【00010110】了,获取的权限模式和此二进制进行与运算,获取的的结果不是0
      总体:用户不是自己,或者,该文件的权限模式和022的二进制【00010110】与运算的结果不是0,就报日志里面的错误。
   ---------------------------------------------------linux rwx 的分割线---------------------------------------------------------
ssh讲的有点晕,还是使用rwx的方式描述比较好,如果你对liux的权限清楚的话
linux的权限对应的值:   r=4, w=2, x=1
上面的代码不需要转化为二进制
(stp->st_mode & 022) != 0
Linux系统的权限
[hadoop@Test-02 .ssh]$ ll
total 20
-rwxr--r-- 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop  396 Jun  3 15:20 known_hosts
[hadoop@Test-02 .ssh]$ 
对应022的权限就是【-----w--w-】 就是组和other有写的权限
[hadoop@Test-02 .ssh]$ chmod 022 authorized_keys
[hadoop@Test-02 .ssh]$ ll
total 20
-----w--w- 1 hadoop hadoop  800 Jun  3 15:18 authorized_keys
-rw-rw-r-- 1 hadoop hadoop  400 Jun  3 15:16 authorized_keys_221
-rw------- 1 hadoop hadoop 1675 Jun  3 15:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  400 Jun  3 15:15 id_rsa.pub
-rw-r--r-- 1 hadoop hadoop  396 Jun  3 15:20 known_hosts
[hadoop@Test-02 .ssh]$
 这个时候获取的文件权限与022进行与计算,不等于0就报错
其实就是这个文件不能设置为【组和other有写的权限】,其他都可以,就是前面在
rwx 的分割线出进行的测试的结果。
就是和【-----w--w-】进行的与运算,如果组和other的权限里面存在w的话,那这个肯定不等0,结果就不允许。
 最新检查,因为代码有两处这个地方,其实是授权文件 authorized_keys 和.ssh目录都不允许有w权限
  ---------------------------------------------------over 的分割线---------------------------------------------------------
我成唠叨王了....
分享到:
评论

相关推荐

    星之语明星周边产品销售网站的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip

    Spring Boot是Spring框架的一个模块,它简化了基于Spring应用程序的创建和部署过程。Spring Boot提供了快速启动Spring应用程序的能力,通过自动配置、微服务支持和独立运行的特性,使得开发者能够专注于业务逻辑,而不是配置细节。Spring Boot的核心思想是约定优于配置,它通过自动配置机制,根据项目中添加的依赖自动配置Spring应用。这大大减少了配置文件的编写,提高了开发效率。Spring Boot还支持嵌入式服务器,如Tomcat、Jetty和Undertow,使得开发者无需部署WAR文件到外部服务器即可运行Spring应用。 Java是一种广泛使用的高级编程语言,由Sun Microsystems公司(现为Oracle公司的一部分)在1995年首次发布。Java以其“编写一次,到处运行”(WORA)的特性而闻名,这一特性得益于Java虚拟机(JVM)的使用,它允许Java程序在任何安装了相应JVM的平台上运行,而无需重新编译。Java语言设计之初就是为了跨平台,同时具备面向对象、并发、安全和健壮性等特点。 Java语言广泛应用于企业级应用、移动应用、桌面应用、游戏开发、云计算和物联网等领域。它的语法结构清晰,易于学习和使用,同时提供了丰富的API库,支持多种编程范式,包括面向对象、命令式、函数式和并发编程。Java的强类型系统和自动内存管理减少了程序错误和内存泄漏的风险。随着Java的不断更新和发展,它已经成为一个成熟的生态系统,拥有庞大的开发者社区和持续的技术创新。Java 8引入了Lambda表达式,进一步简化了并发编程和函数式编程的实现。Java 9及以后的版本继续在模块化、性能和安全性方面进行改进,确保Java语言能够适应不断变化的技术需求和市场趋势。 MySQL是一个关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)来管理和存储数据。MySQL由瑞典MySQL AB公司开发,并于2008年被Sun Microsystems收购,随后在2010年,Oracle公司收购了Sun Microsystems,从而获得了MySQL的所有权。MySQL以其高性能、可靠性和易用性而闻名,它提供了多种特性来满足不同规模应用程序的需求。作为一个开源解决方案,MySQL拥有一个活跃的社区,不断为其发展和改进做出贡献。它的多线程功能允许同时处理多个查询,而其优化器则可以高效地执行复杂的查询操作。 随着互联网和Web应用的快速发展,MySQL已成为许多开发者和公司的首选数据库之一。它的可扩展性和灵活性使其能够处理从小规模应用到大规模企业级应用的各种需求。通过各种存储引擎,MySQL能够适应不同的数据存储和检索需求,从而为用户提供了高度的定制性和性能优化的可能性。

    精选毕设项目-新浪读书.zip

    精选毕设项目-新浪读书

    智慧农业平台解决方案.pptx

    智慧农业平台解决方案

    精选毕设项目-小程序地图Demo.zip

    精选毕设项目-小程序地图Demo

    操作系统课程设计: 并发与调度

    实验目的 在本实验中,通过对事件和互斥体对象的了解,来加深对 Windows Server 2016 线程同步的理解。 1)回顾系统进程、线程的有关概念,加深对 Windows Server 2016 线程的理解; 2)了解事件和互斥体对象; 3)通过分析实验程序,了解管理事件对象的API; 4)了解在进程中如何使用事件对象; 5)了解在进程中如何使用互斥体对象; 6)了解父进程创建子进程的程序设计方法。 程序清单 清单2-1 1.// event 项目   2.#include <windows.h>   3.#include <iostream>   4.using namespace std;   5.   6.// 以下是句柄事件。实际中很可能使用共享的包含文件来进行通讯   7.static LPCTSTR g_szContinueEvent = "w2kdg.EventDemo.event.Continue";   8.   9.// 本方法只是创建了一个进程的副本,以子进程模式 (由命令行指定) 工作    10.BOOL CreateChild()   11.{  

    三相VIENNA整流,维也纳整流器simulink仿真 输入电压220v有效值 输出电压800v纹波在1%以内 0.1s后系统稳定 功率因数>0.95 电流THD<5% 开关频率20k 图一为拓扑,可

    三相VIENNA整流,维也纳整流器simulink仿真 输入电压220v有效值 输出电压800v纹波在1%以内 0.1s后系统稳定 功率因数>0.95 电流THD<5% 开关频率20k 图一为拓扑,可以看到功率因数和THD以及输出电压 图二为直流输出电压 图三四为a相电压电流 图五为控制等计算的总体框图 图六为svpwm调制框图 图七为双闭环控制图八为输出调制波 可作为电力电子方向入门学习~~

    chromedriver-linux64_122.0.6251.0.zip

    chromedriver-linux64_122.0.6251.0

    操作系统课程设计-进程控制描述与控制

    一、实验目的 实验1.1 Windows“任务管理器”的进程管理 通过在Windows任务管理器中对程序进程进行响应的管理操作,熟悉操作系统进程管理的概念,学习观察操作系统运行的动态性能。 实验1.2 Windows Server 2016进程的“一生” 1)通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉 操作系统的进程概念,理解Windows Server 2016进程的“一生”; 2)通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法。 1.// proccreate项目   2.#include <windows.h>   3.#include <iostream>   4.#include <stdio.h>   5.using namespace std;   6.   7.// 创建传递过来的进程的克隆过程并赋与其ID值   8.void StartClone(int nCloneID) {   9.    // 提取用于当前可执行文件的文件名   10.    TCHAR szFilename[MAX_PATH];   11

    MATLAB环境下一种基于稀疏优化的瞬态伪影消除算法 程序运行环境为MATLAB R2018A,执行一种基于稀疏优化的瞬态伪影消除算法 GRAY = 1 1 1 * 0.7; subplot(4

    MATLAB环境下一种基于稀疏优化的瞬态伪影消除算法 程序运行环境为MATLAB R2018A,执行一种基于稀疏优化的瞬态伪影消除算法。 GRAY = [1 1 1] * 0.7; subplot(4, 1, 4) line(n, y, 'color', GRAY, 'lineWidth', 1) line(n, y - x, 'color', 'black'); legend('Raw data', 'Corrected data') xlim([0 N]) xlabel('Time (n)') 压缩包=数据+程序+参考。

    多机系统的暂态稳定仿真 MATLAB编程 针对多机电力系统,通过编程,计算当发生故障时,多台发电机的功角曲线(pv节点发电机与平衡节点发电机的功角差),通过功角曲线来分析判断多机系统的

    多机系统的暂态稳定仿真 MATLAB编程 针对多机电力系统,通过编程,计算当发生故障时,多台发电机的功角曲线(pv节点发电机与平衡节点发电机的功角差),通过功角曲线来分析判断多机系统的暂态稳定性。 注: 可指定故障发生位置及故障清除时间 下面以IEEE30节点系统为例

    中药实验管理系统设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip

    Spring Boot是Spring框架的一个模块,它简化了基于Spring应用程序的创建和部署过程。Spring Boot提供了快速启动Spring应用程序的能力,通过自动配置、微服务支持和独立运行的特性,使得开发者能够专注于业务逻辑,而不是配置细节。Spring Boot的核心思想是约定优于配置,它通过自动配置机制,根据项目中添加的依赖自动配置Spring应用。这大大减少了配置文件的编写,提高了开发效率。Spring Boot还支持嵌入式服务器,如Tomcat、Jetty和Undertow,使得开发者无需部署WAR文件到外部服务器即可运行Spring应用。 Java是一种广泛使用的高级编程语言,由Sun Microsystems公司(现为Oracle公司的一部分)在1995年首次发布。Java以其“编写一次,到处运行”(WORA)的特性而闻名,这一特性得益于Java虚拟机(JVM)的使用,它允许Java程序在任何安装了相应JVM的平台上运行,而无需重新编译。Java语言设计之初就是为了跨平台,同时具备面向对象、并发、安全和健壮性等特点。 Java语言广泛应用于企业级应用、移动应用、桌面应用、游戏开发、云计算和物联网等领域。它的语法结构清晰,易于学习和使用,同时提供了丰富的API库,支持多种编程范式,包括面向对象、命令式、函数式和并发编程。Java的强类型系统和自动内存管理减少了程序错误和内存泄漏的风险。随着Java的不断更新和发展,它已经成为一个成熟的生态系统,拥有庞大的开发者社区和持续的技术创新。Java 8引入了Lambda表达式,进一步简化了并发编程和函数式编程的实现。Java 9及以后的版本继续在模块化、性能和安全性方面进行改进,确保Java语言能够适应不断变化的技术需求和市场趋势。 MySQL是一个关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)来管理和存储数据。MySQL由瑞典MySQL AB公司开发,并于2008年被Sun Microsystems收购,随后在2010年,Oracle公司收购了Sun Microsystems,从而获得了MySQL的所有权。MySQL以其高性能、可靠性和易用性而闻名,它提供了多种特性来满足不同规模应用程序的需求。作为一个开源解决方案,MySQL拥有一个活跃的社区,不断为其发展和改进做出贡献。它的多线程功能允许同时处理多个查询,而其优化器则可以高效地执行复杂的查询操作。 随着互联网和Web应用的快速发展,MySQL已成为许多开发者和公司的首选数据库之一。它的可扩展性和灵活性使其能够处理从小规模应用到大规模企业级应用的各种需求。通过各种存储引擎,MySQL能够适应不同的数据存储和检索需求,从而为用户提供了高度的定制性和性能优化的可能性。

    精选毕设项目-鱼缸表盘系统小程序.zip

    精选毕设项目-鱼缸表盘系统小程序

    法院安防系统解决方案Word(77页).docx

    在科技与司法的交响曲中,智慧法院应运而生,成为新时代司法服务的新篇章。它不仅仅是一个概念,更是对法院传统工作模式的一次深刻变革。智慧法院通过移动信息化技术,为法院系统注入了强大的生命力,有效缓解了案多人少的矛盾,让司法服务更加高效、便捷。 立案、调解、审判,每一个阶段都融入了科技的智慧。在立案阶段,智慧法院利用区块链技术实现可信存证,确保了电子合同的合法性和安全性,让交易双方的身份真实性、交易安全性得到了有力见证。这不仅极大地缩短了立案时间,还为后续审判工作奠定了坚实的基础。在调解阶段,多元调解服务平台借助人工智能、自然语言处理等前沿技术,实现了矛盾纠纷的快速化解。无论是矛盾类型的多元化,还是化解主体的多元化,智慧法院都能提供一站式、全方位的服务,让纠纷解决更加高效、和谐。而在审判阶段,智能立案、智能送达、智能庭审、智能判决等一系列智能化手段的应用,更是让审判活动变得更加智能化、集约化。这不仅提高了审判效率,还确保了审判质量的稳步提升。 更为引人注目的是,智慧法院还构建了一套完善的执行体系。移动执行指挥云平台的建设,让执行工作变得更加精准、高效。执行指挥中心和信息管理中心的一体化应用,实现了信息的实时传输和交换,为执行工作提供了强有力的支撑。而执行指挥车的配备,更是让执行现场通讯信号得到了有力保障,应急通讯能力得到了显著提升。这一系列创新举措的实施,不仅让执行难问题得到了有效解决,还为构建诚信社会、保障金融法治化营商环境提供了有力支撑。智慧法院的出现,让司法服务更加贴近民心,让公平正义的阳光更加温暖人心。

    计算机网络复习要点:OSI模型、TCP/IP协议、IP地址、路由算法及网络安全

    内容概要:本文针对计算机网络这门课程的期末复习,全面介绍了多个关键点和重要概念。主要内容涵盖了计算机网络的基本概念、OSI七层模型及其每一层的具体职责和协议、详细的TCP/IP协议介绍,尤其是三次握手和四次挥手机制、IP地址(IPv4 和 IPv6)的概念和子网划分的技术、静态路由和动态路由的区别及其路由选择算法、TCP和UDP作为两种主要传输层协议的功能区别、各种常用的应用层协议如HTTP、HTTPS、FTP、SMTP等,此外还包括了一些关于网络性能优化的关键参数以及常见的网络安全措施。所有理论均配有相应的案例分析帮助深入理解和巩固知识点。 适合人群:正在准备计算机网络相关考试的学生,或希望深入理解计算机网络架构和原理的人群。 使用场景及目标:为用户提供详尽的期末复习指南,助力理解复杂的技术概念并提高解决具体应用问题的能力,同时通过实例演示使学习变得更加直观。 其他说明:强调不仅要记住公式和定义,更要关注概念背后的运作逻辑及实际应用情况来达到良好的复习效果。

    精选毕设项目-移动端商城.zip

    精选毕设项目-移动端商城

    基于Python的B站视频数据分析可视化系统论文

    本文介绍了基于Python的B站视频的数据分析可视化系统设计与实现。该系统帮助用户深入了解B站视频的趋势,并通过数据分析和可视化技术展示相关信息。利用Python的网络爬虫技术获取B站上的视频数据,包括视频标题、上传者、播放量、点赞数等信息。借助数据分析库Pandas对获取的数据进行处理和分析,例如计算了不同用户视频发布个数、粉丝量、视频长度、视频观阅人数,还分析了不同视频的舆情分布和流行趋势。接着,利用可视化库Echarts将分析结果呈现为图表,例如柱状图、饼图、折线图等,以便用户直观地理解数据。为了提供更加个性化的服务,系统还集成了协同过滤算法推荐功能,根据用户的历史观看记录和偏好,推荐可能感兴趣的视频。最后,设计并实现了一个交互式的用户界面,用户可以通过界面选择感兴趣的话题和日期范围,系统将动态展示相关视频的数据分析结果。通过本系统,用户可以更好地了解B站视频的特点和趋势,同时享受到个性化的视频推荐服务,为用户提供了一个便捷而全面的数据分析工具。 感兴趣自行下载学习!

    MPU6050.zip

    标题 "MPU6050.zip" 暗示了这个压缩包可能包含了与MPU6050陀螺仪和加速度传感器相关的资源。MPU6050是一款广泛应用的惯性测量单元(IMU),它能检测设备在三个轴上的角速度和线性加速度,常用于运动控制、姿态估算、导航等领域。 描述中只提到了"MPU6050.zip",没有提供额外信息,但我们可以通过标签 "stm32cubemx" 来推测,这个压缩包里的内容可能与STM32系列微控制器以及使用STM32CubeMX配置工具有关。STM32CubeMX是一款强大的配置工具,用户可以利用它来初始化STM32微控制器的外设,生成相应的初始化代码。 在压缩包的文件名列表中,我们看到以下几个文件: 1. mpu6050.c:这是一个C源文件,通常包含了与MPU6050交互的驱动程序代码。在这个文件里,开发者可能会定义函数来初始化传感器、读取数据、处理中断等。 2. mpu6050.h:这是对应的头文件,包含了函数声明、常量定义和结构体等,供其他模块调用时包含,以实现对MPU60。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    IPSO-SVR 改进粒子群算法优化支持向量机的多变量回归预测 Matlab语言 1.多变量单输出,通过非线性权重递减方式对粒子群算法进行改进,优化SVR中的两个参数,评价指标包括R2、MAE、MSE

    IPSO-SVR 改进粒子群算法优化支持向量机的多变量回归预测 Matlab语言 1.多变量单输出,通过非线性权重递减方式对粒子群算法进行改进,优化SVR中的两个参数,评价指标包括R2、MAE、MSE、MAPE,效果如图所示,可完全满足您的需求~ 2.直接替Excel数据即可用,注释清晰,适合新手小白[火] 3.附赠测试数据,输入格式如图3所示,可直接运行 4.仅包含模型代码 5.模型只是提供一个衡量数据集精度的方法,因此无法保证替数据就一定得到您满意的结果~

    精选项目-天气预报带后端.zip

    精选项目-天气预报带后端

    精选毕设项目-自助查勘.zip

    精选毕设项目-自助查勘

Global site tag (gtag.js) - Google Analytics