SSH客户端的基本用法
最常用功能,
1.经由安全连接登录到远程计算机。
2.通过安全连接在计算机间拷贝文件。
当你第一次连接SSH服务器时,出现问答时要回答“yes”,把已知名主机的密钥的公共部分拷贝一份存在本地。之后你每次连接这台服务器,就用这个公钥来验证远程主机。最好是能在首次连接前就能获得这个公钥,否则第一次连接服务器时你可能已受到中间人攻击。使用密钥进行认证,SSH支持公钥认证,可以使用加密密钥,密钥比密码更安全。SSH证书使用一对密钥,一个私钥,一个公钥,私钥只保存你独有的一些秘密信息。SSH用其向服务器证明自已的身份。公钥是公开的,可以随便将其放入SSH服务器上自已的帐号中,在认证时,进行私钥和公钥协商,如果匹配,那么身份就得以证明,认证就成功。在使用公钥认证以前,首先要进行一些设置:
1、需要一对密钥,还需要使用一个口令来保护自已的私钥。
使用ssh-keygen程序生成一对密钥。如果不存在SSH目录,程序为自动创建本地SSH目录
~/.ssh,并将所生成的密钥分成两个文件存储,公有部份identity.pub,私有部分identity,或id_dsa_1024_a,id_dsa_1024_a.pub(ssh2)。
2.需要在SSH服务器上安装自已的公钥。
通过配置SSH目录中的一个文件实现,对于SSH1 AND OPENSSH来说该文件是
~/.ssh/authorized_keys。对SSH2来说是~/.ssh2/authorization。OPENSSH中的SSH-2连接自3.0版本起也一同使用authorized_keys文件。3.0版本前的使用authorized_keys2。把用户本地机器生成identity.pub文件内容加入其中。对SSH2来说,用户需编辑两个文件,一个客户端一个在服务器端,在客户端,要创建或编辑文件~/.ssh2/identification并在其中插入一行,说明自已的私钥文件名 IdKey id_dsa_1024_a.在服务器端,要创建或编辑文件~/.ssh2/authorization,该文件包含有公钥信息,每行一个,但和SSH1的authorized_keys文件不同(authorized_keys中包含有公钥的拷贝),authorization中只给出公钥文件名:Key id_dsa_1024_a.pub。最后,把这个文件从本地机器上拷贝到服务器~/.ssh2中。为安全起见,要确保ssh目录的安全,只有所有者才有权写入。如果远程用户的SSH配置文件的权限设置不当,服务器可能会拒绝进行认证。
公钥认证比密码认证更安全,因为:公钥认证需要两个加密部份(磁盘上的identify文件和用户头脑中的口令),入侵都必须具备两种条件才行。密码认证只需要一个部份,那就是密码,它可能更容易被窃取。在公钥认证中,口令和密钥都不用发给远程主机,只要把前面讨论的认证者发给远程主机就可以了,因此,并没有秘密信息传出客户端。
3、机器生成的密钥是不可能猜测出来的,而人生成的密码容易受到字典攻击。
通过禁用密码认证并只允许使用密钥认证能极大提高主机的安全性。
如果要修改密钥如果已经生成一个密钥对,并把公钥拷贝到多个SSH服务器上了,用户有一天决定修改自已的身份,因为再运行ssh-keygen。这样,就会覆盖identify and identify.pub文件,用户之前的公钥就没用了,必须把新公钥再次拷贝到各个服务器上。这是很头疼的,所以建议:
1、 不能局限于仅仅使用一个密钥对,可随意生一此密钥对,将其保存在不同的文件中,并
将其用作不同的用途。如果只是想修改口令,就不必重新生成一个密钥对,ssh-keygen有一个命令行选项可以, 替换现有的密钥口令。ssh1 and openssh是-p,对于ssh2是-e。这样,因为私钥没变,所以公钥依然不效,中需使用新口令对私钥进行解密就可以了。
ssh代理
它可以把私钥保存在内存中,为认证提供服务,不用重复输入密码。直到用户退出为止。代
理程序是ssh-agent。可手工运行也可编辑~/.login 或~/.xsession来自动运行。
$ ssh-agent $SHELL 其中SHELL是用户登录shell的环境变量。运行该命令后,打开另外
一个shell,在这个shell中可以访问代理。
接着用ssh-add命令装入私钥。这样,使用ssh and scp命令就不用再提醒输入口令了。口令
装入内存中。如果用户正运行x window系统,并设置了DISPLAY环境变量,而标准输入
不是终端,那么ssh-add就使用一个图形化X程序ssh-askpass来读取口令。要强制ssh-add
使用X来读取口令,请在命令行中输入ssh-add > $HOME/ssh-command-log
exec $SSH_ORIGINAL_COMMAND
fi
文章出处:http://www.diybl.com/course/6_system/linux/Linuxjs/2008930/146967.html
自动备份
http://www.ibm.com/developerworks/cn/linux/l-backup/index.html#N10058
分享到:
相关推荐
SSH 使用详解 SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。随着互联网的发展,明文通信变得不安全,芬兰学者 Tatu Ylonen ...通过学习 SSH 的使用方法和原理,可以更好地理解网络安全和加密技术。
nodejs ssh2基本功能的封装,连接,下载,上传文件,下载文件,上传文件夹,下载文件夹,创建目录,删除目录,运行shell命令
SSH(Secure Shell)是一种安全协议,用于在网络之间提供加密的通信。它主要用于远程登录、命令执行、文件传输等任务,确保了...无论是Windows还是Linux用户,理解和掌握SSH的基本使用方法对于系统管理和维护至关重要。
在"ssh最基本demo"中,Struts2可能用来处理用户交互,接收表单数据,调用业务方法,并将结果传递给视图层。 Hibernate是持久层框架,它简化了数据库操作。Hibernate通过对象关系映射(ORM)技术,使得Java对象可以...
1 什么是SSH 引用百度百科的说明: SSH 为 Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定;它是建立在应用层基础上的安全协议。 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供...
此外,SSH框架的集成使用可以减少代码重复,提高模块化和可测试性。但是,随着技术的发展,Spring Boot和Spring MVC等现代框架已逐渐成为主流,它们简化了配置,提供了更全面的功能,更适合现代的开发需求。尽管如此...
本文将深入探讨SSH2的基本概念、核心组件以及如何在Java项目中使用SSH2的jar包。 首先,SSH2主要包括以下组件: 1. **用户认证**:SSH2提供了多种认证机制,如基于密钥的认证和基于密码的认证。通过公钥/私钥对...
然后,创建该接口的实现类,实现接口中声明的方法,这些方法通常会使用Hibernate的Session或SessionFactory来执行SQL语句。 2. **Service(业务逻辑服务)部分**: Service层处理业务逻辑,它是Dao和Action之间的...
通过SSH.NET-develop提供的示例代码,开发者可以学习如何正确使用库中的类和方法来解决这些问题。同时,了解SSH协议的基本原理对于更好地利用SSH.NET库也至关重要。 为了深入理解SSH.NET,开发者需要熟悉.NET框架、...
#### SSH的基本用法: - **连接到远程服务器**:`ssh username@hostname` - **退出远程服务器**:`exit` 或 `logout` - **密钥认证**:生成公钥/私钥对,将公钥复制到远程服务器,实现无需密码即可登录。 - **端口...
SSH整合基本开发包是Java开发中的一个重要组成部分,SSH是指Spring、Struts和Hibernate这三个开源框架的缩写。这些框架在企业级应用开发中被广泛使用,它们分别负责控制层、表现层和持久层的管理。下面我们将详细...
#### 二、SSH基本使用 1. **安装SSH服务端与客户端** - 对于大多数Linux发行版,SSH服务端默认是安装好的。 - 在Windows上,可以使用PuTTY作为SSH客户端。 - 使用命令行安装SSH服务端:`sudo apt-get install ...
在这个主题中,“ssh数据库基本操作封装”指的是将常用的数据库交互功能,如增删改查(CRUD),通过SSH框架进行封装,以便在项目中更方便地调用。这通常涉及到Spring的IoC(Inversion of Control)容器来管理数据库...
在这个"ssh基本环境"中,我们看到涉及到了Oracle10g数据库和c3p0数据源。 **Struts2** 是一个MVC(Model-View-Controller)框架,它提供了处理用户请求、业务逻辑和视图展示的能力。Struts2的核心是Action类,它...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的...通过以上介绍,你应该对SSH的集成方式、环境搭建和使用方法有了基本了解。在实际工作中,熟练掌握SSH将极大提升你的远程管理和自动化部署能力。
4. **SSH连接命令**:掌握`ssh`命令的基本用法,如直接登录、通过跳板机连接、执行远程命令等。同时,了解`scp`和`sftp`命令,用于安全地传输文件和目录。 5. **SSH隧道**:理解SSH隧道的概念,学习如何创建本地和...
下面我们将详细介绍如何在MyEclipse环境下搭建SSH框架的基本环境。 首先,确保你已经安装了MyEclipse集成开发环境,以及MySQL数据库和Tomcat服务器。MyEclipse是基于Eclipse的扩展,提供了对SSH框架的良好支持。...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络...理解其工作原理和正确使用方法,对于维护系统的安全性和管理效率至关重要。在日常运维工作中,熟练掌握SSH的各种技巧,可以大大提高工作效率并保障数据安全。
SSH框架的集成使用,首先需要理解每个框架的基本概念和工作原理。Spring作为核心,负责管理对象的生命周期和依赖关系,可以与其他两个框架无缝集成。Struts则作为表现层框架,处理用户的交互和视图展示,而Hibernate...