zoukankan      html  css  js  c++  java
  • ssh

    Linux学习之CentOS(十四)--初识ssh

    早在学习Linux之前,就有听说过ssh这个词了,当时因为学了j2ee的三大框架,所以当听到ssh时,我立马想到的是struts + spring + hibernate,当时也在想这不是java的东西么?怎么跟Linux扯上关系了???后面在百度一下ssh以后,才发现此ssh并非咱们常说的那三大框架的总称,而是一种安全协议,Secure Shell的缩写。。。看来自己的墨水还是太少了。。。还有太多东西要去学习啊。。。。

     

    SSH(Secure Shell的缩写),由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。咱们传统的远程网络服务如ftp、telnet等在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。当如果出现第三方假冒服务器来接收到咱们发送过去的明文数据时,此时可能就会发生严重问题。但是如果通过使用SSH,你可以把所有传输的数据进行加密,这样恶意用户的这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP甚至为PPP提供一个安全的"通道"。

     

    ssh协议目前有SSH1和SSH2,SSH2协议兼容SSH1。目前实现SSH1和SSH2协议的主要软件有OpenSSH和SSH Communications Security Corporation 公司的SSH Communications 软件。前者是OpenBSD组织开发的一款免费的SSH软件,后者是商业软件,因此在linux、FreeBSD、OpenBSD、NetBSD等免费类UNIX系统种,通畅都使用OpenSSH作为SSH协议的实现软件。

     

    咱们现在安装的Linux版本,都会装有SSH,默认就是OpenSSH,可以通过 ssh -V 命令来查看安装的ssh版本信息:

     

     

    [root@xiaoluo xiaoluo]# ssh -V
    OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

     

     

    从上述信息可以看到,我这台安装在虚拟机上的CentOS6.4默认安装的SSH其协议是1.0的。

     

    那么我们有了SSH,我们可以做什么呢?为什么说Linux程序员必须要学会使用SSH呢?

     

    在没有SSH之前,咱们如果想要在Linux和Windows操作系统上实现文件的共享,无非是通过挂载光驱到Linux系统上,或者是通过安装Samba服务器(Linux学习之CentOS(十一)--CentOS6.4下Samba服务器的安装与配置)来进行文件的共享,如果要实现文件的上传下载,那就还要安装FTP才行,这样做起来就非常的麻烦。比如说我Linux系统是远端的一个服务器,咱们这边有许多的程序员在编程完以后需要将文件都上传到Linux系统上,但是我又不能让每个用户都实际的登陆到远端的Linux服务器上,这时我们怎么办呢?那就通过使用咱们的ssh就可以解决问题,ssh类似于咱们windows操作系统上的telnet程序,可以远程登录到远端的服务器,在通过ssh登陆到了远端的Linux服务器以后,咱们就相当于实际登陆了Linux系统一样,可以对其进行操作,同时文件上传、下载、这些都可以非常轻松的搞定,可以说,在学习SSH之前,Ftp、Samba这些咱们是要必须掌握的,但是在学习了SSH以后,这些服务器都是浮云了。。。。。。。

     

    咱们Linux系统在安装时都会安装好了ssh服务器,刚才我们通过了 ssh -V 这个命令可以查看到我们系统上安装的ssh服务器版本信息,所以我们不需要再安装ssh服务端了,在Linux系统中,ssh服务器的服务名称是 sshd ,我们可以通过 chkconfig --list | grep sshd 命令来查看一下sshd服务的开机启动情况

     

    [root@xiaoluo xiaoluo]# chkconfig --list | grep sshd
    sshd               0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

     

    默认情况下,Linux系统在启动时,sshd服务就会启动,咱们不需要去改变它。因为ssh也是一种网络服务,所以其必然也绑定了一个端口号,在Linux系统中,ssh服务绑定的端口号是 21 ,咱们可以通过 netstat -anp | grep sshd 命令来查看sshd服务绑定的端口号是多少:

     

    [root@xiaoluo xiaoluo]# netstat -anp | grep sshd
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2140/sshd           

     

    因为Linux上安装的是ssh服务端,所以咱们如果希望通过远程访问的方式登录到这台服务器上,比如我要在windows系统上远程登录到ssh上,咱们就得在windows上安装一个ssh客户端,现在的ssh客户端软件都非常多,大家可以选择一个下载,例如有:

     

    Absolute Telnet (http://www.celestialsoftware.net/)

     

    putty (http://www.putty.org/)

     

    Xshell4 (http://www.netsarang.com/products/xsh_overview.html)

     

    这里我使用的是Absolute Telnet这个ssh客户端。

     

    注意在使用ssh登陆到远程的Linux系统上时,首先必须要保证该主机要能够与Linux系统之间能互相 ping 通,否则ssh是无法建立远程连接的

     

    打开我们的Absolute Telnet客户端,进入到了主界面

     

     

    在界面敲入回车键或者,选择 文件 -> 连接 就可以弹出连接框

     

     

    在这个框里我们可以设置这次远程访问的一些属性,比如背景色、字符编码、字体等,点击  连接  选项就可以进入到连接信息填入界面

     

     

    在这里我们要输入我们需要远程登录的Linux系统的ip地址(通过ifconfig 命令就可以查看),然后点击确定

     

     

    在这个界面我们选择登录的方式,这里选择使用密码登陆,然后填入我们想要登陆到远程Linux上的用户名和密码(注意:如果是第一次以该用户登录,则会提示生成一个密钥,咱们点击确定即可)

     

     

    这时我们发现我们已经通过root账号登陆到了远程的Linux系统上,这里的操作完全和在Linux系统上的终端操作一模一样。我们这时可以通过 top 命令来查看此时登陆到该Linux系统上的用户:

     

     

    我们发现已经登录了三个用户(因为我的虚拟机上的Linux系统上登陆了xiaoluo和root用户了,所以刚通过ssh再次登录root账号就是第三个用户)

     

    我们此时当然可以通过再次运行 Absolute Telnet客户端再次登录一个用户,为什么Linux系统是多用户的操作系统呢?就是体现在这上面,在Linux上我们可以登陆多个用户对其系统进行访问。

     

    文件上传、下载以及文件的共享????在ssh上就更方便了

     

     

    咱们点击那个SFTP按钮,然后进入到了文件上传的界面(注意:我用的这个Absolute Telnet的客户端软件,如果要进行文件上传,那么建立连接时必须要以root账户登陆,否则在上传文件时会提示权限不足)

     

     

    没错,左边就是你的Windows操作系统目录结构,右边就是你的Linux操作系统目录结构,想要从Windows上上传文件到Linux上?或者从Linux上上传东西到Windows上?so easy。。。直接选择文件然后拖拽过去即可!!!!!此时我们进入到对应的目录,文件已然在目录下了。。。。。。所以说,为什么每一个Linux程序员都得学会ssh。。。。有了ssh,samba那些服务器都是浮云,都可以抛弃了。。。。。。。。。。。

     

    今天终于领悟到了ssh所带来的好处了!!!!!!!!!!!!!!!!!!!

     

    这篇随笔主要记录了对ssh的一些初步认识,在以后的Linux学习中将继续记录自己的学习心得!!!

     

     

     

     

     

     

     

    分类: Linux
    标签: linuxCentOSssh

  • 相关阅读:
    mysql数据库常用指令
    解决windows的mysql无法启动 服务没有报告任何错误的经验。
    “Can't open file for writing”或“operation not permitted”的解决办法
    启动Apache出现错误Port 80 in use by "Unable to open process" with PID 4!
    如何打开windows的服务services.msc
    常见的HTTP状态码 404 500 301 200
    linux系统常用的重启、关机指令
    (wifi)wifi移植之命令行调试driver和supplicant
    linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu )
    alloc_chrdev_region申请一个动态主设备号,并申请一系列次设备号
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3009049.html
Copyright © 2011-2022 走看看