在Linux系统中,OpenSSH是目前最流行的远程系统登录与文件传输应用,也是传统Telenet、FTP和R系列等网络应用的换代产品。其中,ssh(Secure Shell)可以替代telnet、rlogin和rsh,scp(Secure Copy)与sftp(Secure FTP)能后替代ftp。

OpenSSH采用密钥的方式对数据进行加密,确保数据传输的安全。在正式开始传输数据之前,双方首先要交换密钥,当收到对方的数据时,再利用密钥和相应的程序对数据进行解密。这种加密的数据传输有助于防止非法用户获取数据信息。

OpenSSH采用随机的方式生成公私密钥。密钥通常只需生成一次,必要时也可以重新制作。

当使用ssh命令登录到远程系统时,OpenSSH服务器的sshd守护进行将会发送一个公钥,OpenSSH客户端软件ssh将会提示用户确认是否接收发送的公钥。同时,OpenSSH客户端也会向服务器回传一个密钥,使OpenSSH连接双方的每个系统都拥有对方的密钥,因而能够解密对方经由加密链路发送的加密数据。

OpenSSH服务器的公钥与私玥均存储在/etc/ssh目录中。在OpenSSH客户端,用户收到的所有公钥,以及提供密钥的OpenSSH服务器的IP地址均存储在用户主目录下的~/.ssh/known_hosts文件中(.ssh是一个隐藏目录)。如果密钥与IP地址不再匹配,OpenSSH将会认为某个环节出了问题。例如,重新安装操作系统或者升级OpenSSH都会导致系统再次生成新的密钥,恶意的网络攻击也会造成密钥的变动。因此,当密钥发生变化时,总是应当先了解密钥发生变化的原因,以确保网络访问期间的数据安全。

1 安装OpenSSH服务器

在Ubuntu中,OpenSSH的客户端作为一个基础系统软件会随这系统一起安装,但OpenSSH服务器需要单独安装。安装openssh-server服务器软件包,可以使用apt-get、aptitude或synaptic等软件工具。

$ sudo apt-get install openssh-server

安装之后,可以使用以下命令验证OpenSSH服务器的sshd守护进程是否已开启。

$ pidof sshd

2 使用SSH登录到远程系统

在OpenSSH中,ssh是一个重要的客户端应用程序。利用ssh,可以采用加密的通信方式,登录到远程系统,其语法格式如下:

ssh [options] [-l login_name][user@]hostname [command]

其中,”-llogin_name”选项用于指定用户名,表示以哪一个用户身份登录到远程系统。如果不提供用户名,则以当前用户的身份登录到远程系统。例如,下面命令形式表示以webgod用户身份,采用默认的22端口,登录到远程系统(注意,这里”Welcome to Ubuntu 12.04 LTS (GNU/Linux) ……https://helo.ubunut.com/”出自/etc/motd文件)。除了”-l”选项之外,为了以其他用户身份登录到远程系统,还可以使用”user@hostname”的方式登录到远程系统。

第一次使用ssh登录到远程系统时,ssh将会给出一个警告信息,提示用户确认连接的远程系统是否正确。如果用户确认yes,ssh将会在用户主目录的~/.ssh/known_hosts文件中存储远程系统的密钥,同时也会把客户端用户的密钥发送到远程系统。当用户再次登录到同一远程系统时,就不会再出现提示信息了。

3 使用ssh执行远程系统命令

具体用法,在ssh命令后增加一条命令,命令前后使用双引号括起来。

$ ssh webgod@10.203.138.129 “uname -r”

这种一次性登录,执行远程命令,然后立即返回的功能是非常有用的。

4 使用SCP替代FTP

从网络通信角度来看,FTP的数据传输方式是不安全的,因为FTP协议在网络中传输的用户名、密码和数据没有采取任何加密措施。比较安全的方法是采用OpenSSH的SFTP和SCP。

scp是OpenSSH中的另一个重要客户端软件。scp命令的格式如下:

scp [[user@host1:]file1[[user@]host2:]file2

第一个参数是源文件,第二个参数是目的文件。当需要复制远程系统中的文件时,SCP首先需要成功登录到远程系统中,然后才能开始传输文件,因此要求提供远程系统的名字、用户名和密码。

利用scp下载文件

例如,要把远程系统中的~/.ssh/id_rsa.pub文件复制到本地系统的/tmp目录中。

$ scp webgod@10.203.138.129:~/.ssh/id_rsa.pub /tmp

假定已经把sshd守护进程监听的TCP端口修改为435。要使用该端口进行文件复制,则可以用如下命令。

$ scp -P 534 webgod@10.203.138.129:~/.ssh/id_rsa.pub /tmp

利用scp上传文件

$ scp /etc/hosts webgod@10.203.138.129:/tmp

         $ scp -P 435 /etc/hosts webgod@10.203.138.129: /tmp

SSH学习之一 OpenSSH基本使用相关推荐

  1. Windows7之SSH,安装OpenSSH实现SSH客户端及服务

    Windows7之SSH,安装OpenSSH实现SSH客户端及服务 前言 实现工具 1.获取所需的Openshh文件 2.安装OpenSSH 3.配置参数 4.ssh测试 5.发布ssh服务 1)安装 ...

  2. SSH学习之Session接口的常用方法

    回忆 在上一篇播客SSH学习之Hibernate的第一个程序中介绍了基本的Hibernate框架的开发搭建环境,了解了Hibernate的基本过程.在这一篇里,我要介绍的是我么使用Hibernate框 ...

  3. linux ssh权限漏洞,OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325)

    OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325) 发布日期:2016-05-02 更新日期:2016-05-04 受影响系统:OpenSSH OpenSSH &l ...

  4. SSH学习-Hibernate关联查询

    与MyBatis类似,Hibernate也有关联查询,数据库中表与表之间的关联关系使用主外键的形式体现,实体对象之间的关联关系体现在对象与对象的引用.在Mybatis中,当涉及到复杂查询并且表之间存在 ...

  5. ubuntu系统无法ssh登录--安装openssh

    与红帽子系列的Linux发行版不同,Ubuntu系统安装后并不能直接进行ssh登录.需要手动安装openssh才行. Ubuntu安装openssh命令如下: sudo apt-get install ...

  6. CentOS6下ssh简介及openssh的应用

    1. ssh及openssl简介: SSH: ssh是secure shell,是用来通过网络来提供安全的远程访问的工具,C/S结构,在ssh之前,最早的远程计算机连接工具是telnet telnet ...

  7. SSH远程管理OpenSSH使用

    SSH(secure shell)是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能.SSH协议对于通信双方的数据传输进行了加密处理,其中包括你用户登录时输入的用户口令.与早期的tel ...

  8. Linux的ssh学习与配置(SSH的登录)

    远程连接服务器(VMware) 远程连接服务器是通过文字或图形接口方式来远程登录系统,在远程终端控制窗口登录linux主机以取得可操作主机接口(shell),而远程连接服务器拥有分享主机的运算能力的功 ...

  9. SSH学习(个人笔记)

    在学习SSH框架之前,首先需要熟悉servlet,然后再去替代它. Struts: 教程: part1  基础配置 首先去官网下载Struts,下载这个大小为65MB的 压缩后,就可以将其中的lib中 ...

  10. SSH学习笔记(一)

    开发环境:1.MyEclipse 6.5 2.Tomcat 6.0 3.Struts2.0 + Hibernate3.2 + Spring2.0 一.编码前的操作 1.创建项目.在MyEclipse中 ...

最新文章

  1. 深蓝学院的深度学习理论与实践课程:第五章
  2. 手机密钥连接linux主机
  3. android 设颜色透明值
  4. java spring怎么运行_java – 如何使用spring异步运行方法?
  5. Tomcat备份脚本
  6. 源码分析shiro认证授权流程
  7. 程序员技术进阶手册(一)
  8. Java StringBuffer相关解惑
  9. 【软件开发底层知识修炼】二十六 ABI-应用程序二进制接口 学习总结文章目录
  10. json字符串,JSON对象,JSON数组的区别与相互转换
  11. 交个朋友回应罗永浩撰文事故:系没有处理好内部流程导致的误解
  12. C# 读取word2003 并且显示在界面上的方法
  13. java jasper 生成xlsx_JasperReports导出到xlsx,而不是xls
  14. FMX控件演示(FireMonkey ControlsDemo)
  15. C++二进制数转换十进制数
  16. 2019-11-10训练总结
  17. Java练习习题,百钱买百鸡问题,用100文钱买鸡,公鸡5文钱一只,母鸡3文钱一只,小鸡3只1文钱
  18. 注塑机压铸机比例阀控制放大器
  19. 小程序加载网络图片404错误,使用默认图片替换
  20. JAVA计算机毕业设计网课系统(附源码、数据库)

热门文章

  1. VS2010 VB.net安装包生成过程
  2. 在Winfrom中双击Ctrl键打开窗体
  3. 全员系统的服务器地址,江西省全员人口信息系统登录(全员系统查询)
  4. 2018年高教社杯全国大学生数学建模竞赛题目A题   高温作业专用服装设计
  5. 文本匹配工具正式开源
  6. RapidScada免费开源Scada组态软件系列教程1-初识RapidScada
  7. 数字全息干涉偏振相移实验经验总结
  8. 软件工程概述思维导图总结(一)
  9. 零信任时代企业如何提升权限的安全?从浏览器小程序说起
  10. 3.3 以太网交换机