SSH学习之中的一个 OpenSSH基本使用
在Linux系统中。OpenSSH是眼下最流行的远程系统登录与文件传输应用,也是传统Telenet、FTP和R系列等网络应用的换代产品。
当中,ssh(Secure Shell)能够替代telnet、rlogin和rsh,scp(Secure Copy)与sftp(Secure FTP)能后替代ftp。
OpenSSH採用密钥的方式对数据进行加密,确保传输数据的安全。在正式開始传输数据之前,两方首先要交换密钥,当收到对方的数据时。再利用密钥和对应的程序对数据进行解密。
这样的加密的传输数据有助于防止非法用户获取数据信息。
OpenSSH採用随机的方式生成公私密钥。
密钥通常仅仅需生成一次,必要时也能够又一次制作。
当使用ssh命令登录到远程系统时,OpenSSHserver的sshd守护进行将会发送一个公钥,OpenSSHclient软件ssh将会提示用户确认是否接收发送的公钥。同一时候,OpenSSHclient也会向server回传一个密钥,使OpenSSH连接两方的每一个系统都拥有对方的密钥,因而可以解密对方经由加密链路发送的加密数据。
OpenSSHserver的公钥与私玥均存储在/etc/ssh文件夹中。在OpenSSHclient,用户收到的全部公钥,以及提供密钥的OpenSSHserver的IP地址均存储在用户主文件夹下的~/.ssh/known_hosts文件里(.ssh是一个隐藏文件夹)。假设密钥与IP地址不再匹配。OpenSSH将会觉得某个环节出了问题。
比如。又一次安装操作系统或者升级OpenSSH都会导致系统再次生成新的密钥,恶意的网络攻击也会造成密钥的变动。因此,当密钥发生变化时,总是应当先了解密钥发生变化的原因,以确保网络訪问期间的数据安全。
1 安装OpenSSHserver
在Ubuntu中,OpenSSH的client作为一个基础系统软件会随这系统一起安装。但OpenSSHserver须要单独安装。安装openssh-serverserver软件包,能够使用apt-get、aptitude或synaptic等软件工具。
$ sudo apt-get install openssh-server
安装之后。能够使用下面命令验证OpenSSHserver的sshd守护进程是否已开启。
$ pidof sshd
2 使用SSH登录到远程系统
在OpenSSH中,ssh是一个重要的client应用程序。利用ssh,能够採用加密的通信方式。登录到远程系统,其语法格式例如以下:
ssh [options] [-l login_name][user@]hostname [command]
当中,”-llogin_name”选项用于指定username。表示以哪一个用户身份登录到远程系统。假设不提供username,则以当前用户的身份登录到远程系统。比如,以下命令形式表示以webgod用户身份,採用默认的22port。登录到远程系统(注意,这里”Welcome to Ubuntu 12.04 LTS (GNU/Linux) ……https://helo.ubunut.com/”出自/etc/motd文件)。除了”-l”选项之外,为了以其它用户身份登录到远程系统,还能够使用”user@hostname”的方式登录到远程系统。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF2aWRza3kxMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
第一次使用ssh登录到远程系统时。ssh将会给出一个警告信息,提示用户确认连接的远程系统是否正确。
假设用户确认yes,ssh将会在用户主文件夹的~/.ssh/known_hosts文件里存储远程系统的密钥。同一时候也会把client用户的密钥发送到远程系统。当用户再次登录到同一远程系统时,就不会再出现提示信息了。
3 使用ssh运行远程系统命令
详细使用方法。在ssh命令后添加一条命令。命令前后使用双引號括起来。
$ ssh webgod@10.203.138.129 “uname -r”
这样的一次性登录。运行远程命令,然后马上返回的功能是很实用的。
4 使用SCP替代FTP
从网络通信角度来看,FTP的传输数据方式是不安全的,由于FTP协议在网络中传输的username、password和数据没有採取不论什么加密措施。比較安全的方法是採用OpenSSH的SFTP和SCP。
scp是OpenSSH中的还有一个重要client软件。scp命令的格式例如以下:
scp [[user@host1:]file1[[user@]host2:]file2
第一个參数是源文件。第二个參数是目的文件。当须要复制远程系统中的文件时。SCP首先须要成功登录到远程系统中。然后才干開始传输文件,因此要求提供远程系统的名字、username和password。
利用scp下载文件
比如,要把远程系统中的~/.ssh/id_rsa.pub文件拷贝到本地系统的/tmp文件夹中。
$ scp webgod@10.203.138.129:~/.ssh/id_rsa.pub /tmp
假定已经把sshd守护进程监听的TCPport改动为435。要使用该port进行文件复制,则能够用例如以下命令。
$ 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基本使用的更多相关文章
- netty深入学习之中的一个: 入门篇
netty深入学习之中的一个: 入门篇 本文代码下载: http://download.csdn.net/detail/cheungmine/8497549 1)Netty是什么 Netty是Java ...
- Scapy基础学习之中的一个
关于Scapy Scapy的是一个强大的交互式数据包处理程序(使用python编写). 它可以伪造或者解码大量的网络协议数据包,可以发送.捕捉.匹配请求和回复包等等.它可以非常easy地处理一些典型操 ...
- Python 学习之中的一个:在Mac OS X下基于Sublime Text搭建开发平台包括numpy,scipy
1 前言 Python有许多IDE能够用,官方自己也带了一个,Eclipse也能够. 但我在使用各种IDE之后,发现用Sublime Text是最好用的一个.因此.我都是用Sublime Text来编 ...
- Java并发学习之中的一个——线程的创建
本文是学习网络上的文章时的总结,感谢大家无私的分享. 1.与每一个Java语言中的元素一样,线程是对象.在Java中,我们有两种方式创建线程: a.通过直接继承thread类,然后覆盖run方法. b ...
- input子系统驱动学习之中的一个
刚開始学习linux这门课就被分配编写一个设备的input子系统驱动.这对我的确有点困难.只是实际的操作中发现困难远比我想象的要大的多.本以为依照老师课上的步骤就行非常快的完毕这项任务.后来发 ...
- mysql学习之中的一个:mysql安装
我用的时mac系统,本来想在mac系统上装一个,可是发现mac系统始终无法用password登入到本机server,很奇怪的问题(在stackflow上看了些回复,也没有找到原因),最后仅仅好装到虚拟 ...
- Oschina 安卓client源代码学习之中的一个
今天主要研究一下两个功能 (1)双击返回键退出程序 (2)接近完美地退出程序 (1) 在非常多应用程序里都有一个功能,就是点击返回键,之后提示你再点击返回键就退出程序. 之前一直非常好奇这是怎么实现的 ...
- 数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本
1 首先在開始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写username和password 測试假设成功则点击连接,记得角色要写SYSDBA ...
- Gravitational Teleport 是一个先进的 SSH 服务器,基于 Golang SSH 构建,完全兼容 OpenSSH
Gravitational Teleport 是一个先进的 SSH 服务器,可通过 SSH 或者 HTTPS 远程访问 Linux 服务器.其目的是为了替代 sshd.Teleport 可以轻松让团队 ...
随机推荐
- android:关于主工程和library project
.如何将一个android工程作为库工程(library project) library project是作为jar包被其它android工程使用的,首先它也是普通的android工程.然后: )在 ...
- bzoj4956: [Wf2017]Secret Chamber at Mount Rushmore
F......loyd? 这范围也是..... 然而大了也不会.... #include<cstdio> #include<iostream> #include<cstr ...
- Constructing Roads --hdoj
Constructing Roads Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) ...
- 【撸码caffe 三】 caffe.cpp
caffe.cpp文件完成对网络模型以及模型配置参数的读入和提取,提供了网络模型训练的入口函数train和对模型的测试入口函数test.文件中使用了很多gflags和glog指令,gflags是goo ...
- 随时随地日志Debug
对于一个应用程序而言,Log必不可少,但是有些时候仅仅想看下输出,如果加log的话就显得比较麻烦,这个时候就用到了Debug.WriteLine("测试下,你好,非常棒,牛叉!") ...
- CTF-Mayday
打开下载的Mayday.txt文件: 温柔 知足突然好想你 拥抱突然好想你 拥抱温柔 知足温柔 知足突然好想你 拥抱突然好想你 拥抱温柔 知足温柔 知足突然好想你 拥抱突然好想你 拥抱温柔 ...
- Python 生成requirement 使用requirements.txt
第一步:python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号.以便新环境部署. requirements.txt可以通过pip命令自动生成和安装 ...
- BZOJ 3991 set维护dfs序
思路: set按照dfn排序 两点之间的距离可以O(logn)算出来 加一个点-> now ans+=dis(pre,now)+dis(now,next)-dis(pre-next); 删一个点 ...
- .NET使用Office Open XML导出大量数据到 Excel
我相信很多人在做项目的都碰到过Excel数据导出的需求,我从最开始使用最原始的HTML拼接(将需要导出的数据拼接成TABLE标签)到后来happy的使用开源的NPOI, EPPlus等开源组件导出EX ...
- IEnumerable ICollection IList