[转载] SSH入门学习基础教程

在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都会导致系统再次生成新的密钥,恶意的网络攻击也会造成密钥 的变动。因此,当密钥发生变化时,总是应当先了解密钥发生变化的原因,以确保网络访问期间的数据安全。

通过OpenSSH远程登录时的延迟问题解决 http://www.linuxidc.com/Linux/2013-07/86879.htm

Ubuntu 12.10下OpenSSH的离线安装方法 http://www.linuxidc.com/Linux/2013-04/82814.htm

OpenSSH升级步骤及注意事项详解 http://www.linuxidc.com/Linux/2013-04/82123.htm

OpenSSH普通用户无法登录的几种情况的解决方法 http://www.linuxidc.com/Linux/2012-05/59457.htm

通用线程: OpenSSH 密钥管理,第 1 部分理解 RSA/DSA 认证 http://www.linuxidc.com/Linux/2011-08/39871.htm

RedHat安装OpenSSH和配置sftp锁定目录 http://www.linuxidc.com/Linux/2012-12/75398.htm

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][[email protected]]hostname [command]

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

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

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

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

$ ssh [email protected] “uname -r”

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

4 使用SCP替代FTP

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

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

scp [[[email protected]:]file1[[[email protected]]host2:]file2

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

利用scp下载文件

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

$ scp [email protected]:~/.ssh/id_rsa.pub /tmp

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

$ scp -P 534 [email protected]:~/.ssh/id_rsa.pub /tmp

利用scp上传文件

$ scp /etc/hosts [email protected]:/tmp

$ scp -P 435 /etc/hosts [email protected]: /tmp

更多详情见请继续阅读下一页的精彩内容http://www.linuxidc.com/Linux/2014-06/103008p2.htm

时间: 2024-11-06 09:42:05

[转载] SSH入门学习基础教程的相关文章

[转载]强烈推荐学习的blog

膜拜大牛 原文出处:http://hedengcheng.com/?p=676 ACM Queue (Architecting Tomorrow’s Computing) 网址:http://queue.acm.org/blog/ 作者:ACM.第一次认识ACM Queue,是因为一篇文章,Cary Millsap的Thinking Clearly about Performance.之后,就挖掘到了这个大宝藏,陆陆续续阅读了此博客上的大量文章,主要集中于Concurrency与Performa

iOS第三方库汇总[转载]

iOS第三方库汇总[转载] 字数2179 阅读334 评论0 喜欢29 简介 此文用于总结,本人使用过或者收藏过的Github第三方类库,以便日后查阅,也便他人借鉴. 资料整理中不定期更新... 开源项目 CodeHub browse and maintain your GitHub repositories on any iOS device! Open-Source iOS Apps 开源iOS apps列表 APP相关 iVersion 提示版本更新 BonMot 字体相关的库,设置字体样

[转载]矩阵及变换,以及矩阵在DirectX和OpenGL中的运用问题:左乘/右乘,行优先/列优先

[转载]http://www.xuebuyuan.com/882848.html (一)首先,无论dx还是opengl,所表示的矢量和矩阵都是依据线性代数中的标准定义的:“矩阵A与B的乘积矩阵C的第i行第j列的元素c(ij)等于A的第i行于B的第j列的对应元素乘积的和.”(实用数学手册,科学出版社,第二版)例如c12 = a11*b11+a12*b21+a12*b13... (二)在明确了这一点后,然后我们再看“矩阵的存储方式”,矩阵存储方式有两种,一种是“行主序(row-major order

Daydream从入门到精通——快速入门开发基础教程二:Android端开发环境配置二

开始部署 上篇介绍了开发Daydream Android VR需要的基本环境,这篇我们来看看如何部署和运用官方示例. -------------------------------------------------------------------------------------------------------------------- Daydream快速入门开发基础教程一:Android端开发环境配置一 http://blog.csdn.net/jaikydota163/arti

html快速入门(基础教程+资源推荐)

1.html究竟是什么? 从字面上理解,html是超文本标记语言hyper text mark-up language的首字母缩写,指的是一种通用web页面描述语言,是用来描述我们打开浏览器就能看到的各种web页面的. 所以说,写html代码根本和 编程都扯不上边,不要一听源码两个字就绝望,以为要你攻读计算机学位似的. 你只要知道当你要在网页中展示内容的时候该用哪个标记就可以了. 即使一开始记不 住,也没关系,查课本,问度娘,分分钟搞定,用过几次,想记不住都难. 最近风靡各大博客和写作平台的ma

Python自学入门学习基础之一: 列表和元组

本人从事Python多年,有好多小伙伴加了我之后说:有没有相对来说简单点的教程,你写的一些大项目我们小编看不懂!!今天我就发一篇小白入门学习之一的基础,列表和元祖,欢迎大家订阅公众号:Python从程序猿到程序猿,或者加 ,山君:49130.8659,编码:柯西 ...编码:柯西,,我会分享爬虫或者web从0基础到项目实战的一系列的视频资料,保证可以让你自学成才. 列表 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把ob

[转载]Linux ssh客户端配置-基础知识

原文链接: http://www.hao32.com/unix-linux/462.html 配置文件~/.ssh/config和/etc/ssh/ssh_config 14. 01. 一般不需要修改OpenSSH客户端配置文件.对于给定用户,共有两个配置文件,分别是~/.ssh/config(用户专用)和/etc/ssh/ssh_config(全局共享).要按照该顺序读取这些文件,对于给定的某个参数,它使用的是读取过程中发现的第一个配置.用户可以通过以下方式将全局参数设置覆盖掉:在自己的配置文

HTML学习基础教程

详细学习教程请看上面摘要中的网址.下面简单入门一下: 1.什么是HTML? HTML 指的是超文本标记语言 (Hyper Text Markup Language). 2.HTML的作用? 简单来说就是用来开发网站的语言.所有的网页都是浏览器对HTML代码解释而形成的. 3.怎样利用HTML开发网页? 复制如下代码到文本文件中,然后把后缀名称改成.html或者.html即完成一个最简单的网页开发. <html> <body> <h1>我的第一个网页</h1>

[zepto]源码学习

$() : zepto选择器,与jquery选择器类似,但是不支持jquery的拓展css支持 $("div")选择页面内的全部div元素,并以集合形式返回       $("<div />")创建一个新的div元素,可以为其添加属性,写法为$("<div />",{text:"hello",id:"divTest",css:{color:'#000'} }) $.contains(