在当今的信息化时代,SSH(Secure Shell)协议已经成为远程登录服务器的首选工具,为了提高工作效率,避免重复输入密码的繁琐过程,配置SSH免登陆功能显得尤为重要,本文将详细介绍如何配置SSH免登陆,包括生成密钥对、配置SSH客户端和服务器,以及一些常见问题的解答。
生成SSH密钥对
SSH密钥对由公钥和私钥组成,公钥用于服务器,私钥用于客户端,以下是生成密钥对的基本步骤:
1 在客户端生成密钥对
ssh-keygen -t rsa -b 4096
2 设置密钥文件密码(可选)
Enter passphrase (empty for no passphrase):
3 设置密钥文件名称(默认为
~/.ssh/id_rsa
)
Enter file in which to save the key (/home/username/.ssh/id_rsa):
将公钥复制到服务器
将生成的公钥文件
~/.ssh/id_rsa.pub
复制到服务器的
~/.ssh/authorized_keys
文件中。
1 在客户端复制公钥
cat ~/.ssh/id_rsa.pub
2 在服务器上粘贴公钥
cat >> ~/.ssh/authorized_keys << EOF# 复制粘贴从客户端复制的公钥内容EOF
3 修改权限
确保目录的权限为700,
authorized_keys
文件的权限为600。
chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys
配置SSH客户端
在客户端配置SSH配置文件,以实现免登陆。
1 打开SSH配置文件
nano ~/.ssh/config
2 添加配置
Host your_server_nameHostName server_ipUser usernameIdentityFile ~/.ssh/id_rsa
测试SSH免登陆
在客户端使用以下命令测试是否配置成功:
ssh your_server_name
如果一切配置正确,您应该可以直接登录服务器,而无需输入密码。
常见问题解答(FAQs)
问题1:如何查看SSH密钥的指纹?
ssh-keygen -l -f ~/.ssh/id_rsa
问题2:如果忘记了SSH密钥密码,如何解锁?
ssh-agent bashssh-add ~/.ssh/id_rsa
通过以上步骤,您已经成功配置了SSH免登陆功能,这不仅提高了工作效率,还增强了安全性,希望本文能对您有所帮助。
Spring有什么好处?
在SSH框假中spring充当了管理容器的角色。 我们都知道Hibernate用来做持久层,因 为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句。 Struts是用来做应用层的,他它负责调用业务逻辑serivce层。 所以SSH框架的流程大致 是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts 负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的 依赖和强,属于耦合。 这时,使用spring框架就起到了控制Action对象(Strus中的)和 Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正 是用在此处。 Spring的Ioc(控制反转和依赖注入) 控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直 接操控。 依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注 入到组件之中。 从上面我们不难看出:从头到尾Action仅仅是充当了Service的控制工具,这些具体的 业务方法是怎样实现的,他根本就不会管,也不会问,他只要知道这些业务实现类所提供的 方法接口就可以了。 而在以往单独使用Struts框架的时候,所有的业务方法类的生命周期, 甚至是一些业务流程都是由Action来控制的。 层与层之间耦合性太紧密了,既降低了数据访 问的效率又使业务逻辑看起来很复杂,代码量也很多。 ,Spring容器控制所有Action对象和 业务逻辑类的生命周期,由与上层不再控制下层的生命周期,层与层之间实现了完全脱耦, 使程序运行起来效率更高,维护起来也方便。 使用Spring的第二个好处(AOP应用): 事务的处理: 在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch 来完成,而在 Spring中。 Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能, 包括异常时事务回滚,操作成功时数据提交等复杂业务功能。 这都是由Spring容器来管理, 大大减少了程序员的代码量,也对事务有了很好的管理控制。 Hibernate中也有对事务的管 理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。 而Spring对 SessionFactory配置也进行了整合,不需要在通过来对 SessionaFactory进行设定。 这样的话就可以很好的利用Sping对事务管理强大功能。 避免 了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的 Try/Catch操作。 这些也就是Spring中的AOP(面向切面编程)机制很好的应用。 一方面使 开发业务逻辑更清晰、专业分工更加容易进行。 另一方面就是应用Spirng AOP隔离降低了 程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代码重用度。
缓冲区溢出攻击原理是?
如果把一加仑的水注入容量为一品脱的容量中,水会四处冒出,这时你就会充分理解溢出的含义。 同样的道理,在计算机内部,如果你向一个容量有限的内存空间里存储过量数据,这时数据也会溢出存储空间。 输入数据通常被存放在一个临时空间内,这个临时存放空间被称为缓冲区,缓冲区的长度事先已经被程序或者*作系统定义好了。 何为缓冲区溢出缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。 溢出的数据覆盖在合法数据上。 理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。 但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。 *作系统所使用的缓冲区又被称为堆栈,在各个*作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。 当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。 可见一小部分数据或者一套指令的溢出就可能导致一个程序或者*作系统崩溃。 溢出根源在于编程缓冲区溢出是由编程错误引起的。 如果缓冲区被写满,而程序没有去检查缓冲区边界,也没有停止接收数据,这时缓冲区溢出就会发生。 缓冲区边界检查被认为是不会有收益的管理支出,计算机资源不够或者内存不足是编程者不编写缓冲区边界检查语句的理由,然而摩尔定律已经使这一理由失去了存在的基础,但是多数用户仍然在主要应用中运行十年甚至二十年前的程序代码。 缓冲区溢出之所以泛滥,是由于开放源代码程序的本质决定的。 一些编程语言对于缓冲区溢出是具有免疫力的,例如Perl能够自动调节字节排列的大小,Ada95能够检查和阻止缓冲区溢出。 但是被广泛使用的C语言却没有建立检测机制。 标准C语言具有许多复制和添加字符串的函数,这使得标准C语言很难进行边界检查。 C++略微好一些,但是仍然存在缓冲区溢出。 一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误,但是,如果输入的数据是经过“黑客”或者病毒精心设计的,覆盖缓冲区的数据恰恰是“黑客”或者病毒的入侵程序代码,一旦多余字节被编译执行,“黑客”或者病毒就有可能为所欲为,获取系统的控制权。 溢出导致“黑客”病毒横行缓冲区溢出是病毒编写者和特洛伊木马编写者偏爱使用的一种攻击方法。 攻击者或者病毒善于在系统当中发现容易产生缓冲区溢出之处,运行特别程序,获得优先级,指示计算机破坏文件,改变数据,泄露敏感信息,产生后门访问点,感染或者攻击其他计算机。 2000年7月,微软Outlook以及Outlook Express被发现存在漏洞能够使攻击者仅通过发送邮件就能危及目标主机安全,只要邮件头部程序被运行,就会产生缓冲区溢出,并且触发恶意代码。 2001年8月,“红色代码”利用微软iis漏洞产生缓冲区存溢出,成为攻击企业网络的“罪魁祸首”。 2003年1月,Slammer蠕虫利用微软SQL漏洞产生缓冲区溢出对全球互联网产生冲击。 而在近几天,一种名为“冲击波”的蠕虫病毒利用微软RPC远程调用存在的缓冲区漏洞对Windows 2000/XP、Windows Server 2003进行攻击,波及全球网络系统。 据CERT安全小组称,*作系统中超过50%的安全漏洞都是由内存溢出引起的,其中大多数与微软技术有关,这些与内存溢出相关的安全漏洞正在被越来越多的蠕虫病毒所利用。 缓冲区溢出是目前导致“黑客”型病毒横行的主要原因。 从红色代码到Slammer,再到日前爆发的“冲击波”,都是利用缓冲区溢出漏洞的典型。 缓冲区溢出是一个编程问题,防止利用缓冲区溢出发起的攻击,关键在于程序开发者在开发程序时仔细检查溢出情况,不允许数据溢出缓冲区。 此外,用户需要经常登录*作系统和应用程序提供商的网站,跟踪公布的系统漏洞,及时下载补丁程序,弥补系统漏洞。
科学作业什么和什么是一种重要的学习方法
高效听课方法:1、有准备的去听,也就是说听课前要先预习,找出不懂的知识、发现问题,带着知识点和问题去听课会有解惑的快乐,也更听得进去,容易掌握;2、参与交流和互动,不要只是把自己摆在“听”的旁观者,而是“听”的参与者,积极思考老师讲的或提出的问题,能回答的时候积极回答(回答问题的好处不仅仅是表现,更多的是可以让你注意力更集中)。 3、听要结合写和思考。 纯粹的听很容易懈怠,能记住的点也很少,所以一定要学会快速的整理记忆。 4、如果你因为种种原因,出现了那些似懂非懂、不懂的知识,课上或者课后一定要花时间去弄懂。 不然问题只会越积越多,最后就只能等着拥抱那“不三不四”的考试分数了。 高效记忆方法:1、要学会整合知识点。 把需要学习的信息、掌握的知识分类,做成思维导图或知识点卡片,会让你的大脑、思维条理清醒,方便记忆、温习、掌握。 同时,要学会把新知识和已学知识联系起来,不断糅合、完善你的知识体系。 这样能够促进理解,加深记忆。 2、合理用脑。 所谓合理,一是要交替复习不同性质的课程,如文理交叉,历史与地理交叉,这可使大脑皮层的不同部位轮流兴奋与抑制,有利于记忆能力的增强与开发;二是在最佳时间识记,一般应安排在早晨、晚上临睡前,具体根据自己的记忆高峰期来选择。 3、借助高效工具。 速读记忆是一种高效的阅读学习方法,其训练原理就在于激活“脑、眼”潜能,培养形成眼脑直映式的阅读学习方式,主要练习提升阅读速度、注意力、记忆力、理解力、思维力等方面。 掌握之后,在阅读文章、材料的时候可以快速的提取重点,促进整理归纳分析,提高理解和记忆效率;同时很快的阅读速度,还可以节约大量的时间,游刃有余的做其它事情。 具体学习可以参考《精英特全脑速读记忆训练软件》。 学习思维导图,思维导图是一种将放射性思考具体化的方法,也是高效整理,促进理解和记忆的方法。 不仅在记忆上可以让你大脑里的资料系统化、图像化,还可以帮助你思维分析问题,统筹规划。 不过,要学好思维导图,做到灵活运用可不是一件简单的事,需要花费很多时间的。 前面说的“精英特全脑速读记忆训练软件”中也有关于思维导图的练习和方法讲解,可以参考。 总结提升方法:一是要总结考试成绩,通过总结学会正确地看待分数。 只有正确看待分数,才不会被分数蒙住你的双眼,而专注于学习的过程,专注于蕴藏在分数背后的秘密。 二是要总结考试得失,从中找出成败原因,这是考后总结的中心任务。 学习当然贵在努力过程,但分数毕竟是知识和技能水平的象征之一,努力过程是否合理也常常会在分数上体现出来。 三是要总结、整理错题,收集错题,做出对应的一些解题思路(不解要知道这题怎么解,还有知道这一类型的题要怎么解)。 四是要通过总结,确定下阶段的努力方向。














发表评论