在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

最新文章

  1. FlumeNG 笔记
  2. Qt中数据模块学习
  3. WPF学习笔记(一):数据绑定之元素到元素绑定
  4. 关于async
  5. ubuntu-E:Encountered a section with no Package: header的解决办法
  6. java提高篇---Vector
  7. cdoj 65 CD Making 水题
  8. Team Homework #2
  9. HDU5131-Song Jiang's rank list HDU5135-Little Zu Chongzhi's Triangles(大佬写的)
  10. CURL模拟post请求上传文件
  11. alsa声卡分析alsa-utils调用过程
  12. ios、移动端 input type=date无法点击的问题解决方法
  13. 网络编程之非阻塞connect编写
  14. JVM 虚拟机笔记
  15. process(进程)
  16. git checkout .还可以恢复吗
  17. vue 项目中的坑 在项目中遇到 持续更新ing
  18. day48
  19. Java 常用对象-StringBuffer类
  20. Confluence 6 教程:在 Confluence 中导航

热门文章

  1. 第19章 Redis的一些常用技术
  2. Java基础7一面向对象
  3. (转)es6用法
  4. Android 使用WindowManager实现Android悬浮窗
  5. 关于H5移动端开发 iPhone X适配
  6. Poj Maya Calendar
  7. C# 6.0新加特性
  8. 03--软件包管理工具 apt
  9. 创建一个dynamics CRM workflow (三) - Creating Configuration Entity for Custom Workflow
  10. python tips: is同一性运算符