SSH学习之一 OpenSSH基本使用

在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][[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]9: /tmp

时间: 2024-10-29 04:51:14

SSH学习之一 OpenSSH基本使用的相关文章

SSH学习之四 OpenSSH安全

OpenSSH是Linux/Unix下一款加密通讯软件,同时也是我们用来远程控制Linux/Unix服务器重要的必装软件.对于各版本的Linux及Unix发行版而言,OpenSSH的配置文件位置都各不一样.如Ubuntu下OpenSSH配置文件就在/etc/ssh/sshd_config. OpenSSH安全选项: Port 22 // OpenSSH打开的端口号 LoginGraceTime 120 // 客户端连接服务器成功后多少秒未登陆就被强制关闭连接 PermitRootLogin ye

SSH学习之二 OpenSSH配置文件解析

下面是对SSH配置文件的一些选项的分解说明,ssh_config是OpenSSH客户端的配置文件,sshd_config是OpenSSH服务器端的配置文件. ssh_config的内容如下: # This is the ssh client system-wide configuration file.  See ssh_config(5) for more information.  This file provides defaults for users, and the values c

SSH学习之三 SSH与SCP无密码登录

通常情况下,每次使用ssh登录或使用scp复制远程系统的文件时,都需要提供密码,然后才能做进一步的处理.为了省略输入密码这一步骤,有时可以采用Shell脚本的方法解决,但这需要把手工输入的密码以明码形式放在脚本文件中. 利用密钥配置文件,OpenSSH可以是ssh远程登录与scp文件复制的操作过程中省略密码验证的中间环节.为此,ssh客户端首先应建立OpenSSH连接,然后自动地想服务器发送其公钥.之后,服务器即可根据相应用户主目录中预定义的密钥列表,对收到的密钥进行比较.如果存在匹配的密钥,服

SSH学习笔记

一.Struts        在没有学习SSH框架前,我们一般采用Jsp+java bean+servlet开发,这里就是MVC架构.而Struts其实就是替代了Servlet,我们知道Servlet在一般的开发中做控制页面跳转,同时调用系统的业务逻辑层.现在想想Struts是不是做一样的是?只是它能够更加的提高开发速度.我们Servlet开发时,是要创建一个Servlet其实就是继承了HttpServlet这个类.而现在Struts里面的Action也要集成一个ActionSupport类.

SSH 协议与OpenSSH详解

1. ssh概述 ssh是(Secure SHell protocol) 的简写,安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议. 2. ssh 主要功能 一个就是类似 telnet 的远程联机使用 shell 的服务器,即 ssh 另一个就是类似 FTP 服务的 sftp-server ,提供更安全的 FTP 服务 3. ssh 工作原理 服务器建立公钥: 每一次启动 sshd 服务时,该服务会主动去找 /etc/ssh/ssh_host* 的文件,若系统刚

SSH学习

SSH 学习笔记 SSH:struts + hibernate + spring 第一部分:struts2 (没有数据库) struts2 简介 servlet解耦,实现了MVC的思想: struts2 配置文件的标签 package name:唯一标识一个包,不能重名: extends:继承其他包,可以直接使用该包中的资源: abstract:true 包为抽象包,不能写action标签.默认为false: namespace:命名空间,注意搜索机制,默认namespace="/":

SSH学习之中的一个 OpenSSH基本使用

在Linux系统中.OpenSSH是眼下最流行的远程系统登录与文件传输应用,也是传统Telenet.FTP和R系列等网络应用的换代产品. 当中,ssh(Secure Shell)能够替代telnet.rlogin和rsh,scp(Secure Copy)与sftp(Secure FTP)能后替代ftp. OpenSSH採用密钥的方式对数据进行加密,确保传输数据的安全.在正式開始传输数据之前,两方首先要交换密钥,当收到对方的数据时.再利用密钥和对应的程序对数据进行解密. 这样的加密的传输数据有助于

SSH学习总结

引子: 第一次接触到SSH,也是第一次接触到Linux(Unix Like)系统,时间上说不上来了,SSH算得上是Linux系统的的一个标准配置,对SSH的印象,它就是一种远程连接的工具,有了它就能安全的与远程主机进行连接. (一).什么是SSH SSH的全称是Secure Shell,简单说来ssh是一种安全的外壳协议,用于两个计算机间安全的远程登陆,说它安全,是因为ssh采用公钥加密的机制. 最开始时用作远程管理的工具是telnet,这个协议工作时在网络上传输的数据全是明文,出于安全性的考虑

ssh学习小记

ssh 为Secure SHell 的缩写.OpenSSH: ssh协议的开源实现. SSH协议版本 v1: 基于CRC-32做MAC,不安全:man-in-middle v2:双方主机协议选择安全的MAC方式 基于DH算法做密钥交换,基于RSA或DSA实现身份认证 OpenSSH实现的客户端,服务端 C/S架构 C: ssh, scp, sftp Windows客户端: xshell, putty, securecrt, sshsecureshellclient S: sshd ssh客户端