SSH

在日常生产中,我们一般情况下都是在远程端去控制服务器,很少直接接触服务器,这就使得我们掌握如何使用ssh服务等远程服务很重要了。SSH可以实现远端掌控服务器,查看服务器的状态、信息等一些情况。掌握其原理,对于我们去理解别的远程工具有一定的作用;容易掌握。     
一、SSH基本介绍

1、含义:

        SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH<摘自:百度>。

2、实现SSH的方法

    (1)OpenSSH 工具
    (2)dropbear 工具
3、SSH协议版本

    SSHv1:基于CRC-32做MAC(Massage Autherization Code);不安全。
    SSHv2:双方主机协议选择安全的MAC方式,基于DH算法做秘钥交换,基于RSA或DSA实现身份认证。

4、SSH认证方式

    - 基于passwd认证方式
    - 基于秘钥认证

二、实现SSH的管理方法

1、基于OpenSSH

(1)概念

        OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。

(2)openssh工具

(a)ssh工具相关的安装包

    openssh-VERSION.rpm 通用包
    openssh-server-VERSION.rpm  服务端安装包
    openssh-client-VERSION.rpm 客户端安装包

(b)配置文件

 /etc/sshd/ssh_config客户端配置文件

选项
    Host *     表示所有主机    
    StrictHostKeyChecking ask    首次登陆是否检查提示    
    ForwardX11Trusted yes    是否开启信任x11转发    
   
 /etc/sshd/sshd_config 服务器端配置文件

选项    
    Port 22     默认端口号为22    
    AddressFamily any     地址家族    
    ListenAddress ::       监听的地址    
    HostKey    密钥存放的位置    
    AuthorizedKeysFile    认证文件存放位置    
    PermitRootLogin     是否允许管理员登录,建议改为no    
    UseDNS    是否支持dns反向解析  此选项和GSSAPIAuthentication 同时使用;    
    ClientAliveInterval和ClientAliveCountMax    同时使用,两者相乘,就是连接的存活时间。    
    MaxAuthTries     最多认证次数    
    Banner /path/file    登录的提示信息    
    MaxSessions      最多会话    
    AllowUsers     允许用户    
    AllowGroups     允许组\>    
    DenyUsers    禁止用户    
    DenyGroups    禁止组    
  (3)ssh工具使用格式

        ssh [user@]host [COMMAND]
        ssh [-l user] host [COMMAND]
选项:
    -c     压缩方式    
    -b     绑定IP连接    
    -p    PORT 指定对方的端口号    
    -X    支持x11转发    
    -y     支持信任x11转发,与配置文件ForwardX11Trusted有关    
    -t    强制伪tty分配    

ssh -t remoteserver1 ssh remoteserver2 :当远程主机remoteserver2无法直接到达时,可以使用-t参数,然后由remoteserver1跳转到remoteserver2。在此过程中要先输入remoteserver1的密码,然后再输入remoteserver2的密码,然后就可以操作remoteserver2了。

**示例:**
假设这里有三台机器,CnetOS6.9-1 IP为192.168.159.138;CnetOS6.7-1 IP为192.168.159.139;CnetOS7.3-2 IP为192.168.159.161。CentOS6.9-1 可以与CentOS7.3-1通信,不能与CentOS7.3-2通信;而CentOS7.3-1可以与CentOS7.3-2通信。如何实现CentOS6.9-1与CentOS7.3-2通信呢?

(1)在CentOS7.3-2禁止CentOS6.9-1的IP 连接

[root@localhost~]#iptables -A INPUT -s 192.168.159.138 -j REJECT

(2)在CentOS6.9-1测试是否能ping通

[root@centos6~]#ping 192.168.159.161
PING 192.168.159.161 (192.168.159.161) 56(84) bytes of data.
From 192.168.159.161 icmp_seq=1 Destination Port Unreachable

(3)然后通过CentOS7-1为跳板机连接到CentOS7.3-2主机上
(a)先测试CentOS6.9-1是否能连接到主机CentOS7.3-2

[root@centos6~]#ssh 192.168.159.161
ssh: connect to host 192.168.159.161 port 22: Connection refuse

(b)利用CentOS7.3-1作为跳板机连接到CentOS7.3-2主机上

[root@centos6~]#ssh -t 192.168.159.139 ssh 192.168.159.161
[email protected]'s password: 
[email protected]'s password: 
Last login: Tue Sep 12 19:21:37 2017 from 192.168.159.161

 顺利的解决了我们遇到的问题。

   (4)工作机制
   
         当客户端连接SSH服务器时,会复制ssh服务器 `/etc/ssh/ssh_host*.key.pub ` (CentOS7是/etc/ssh/ssh_host_ecdsa_key.pub)文件中的公钥到客户机的` ~./ssh/know_hosts`中。下次连接时,会自动匹配响应的私钥,如果匹配成功,则连接,反之亦然。

    (a)客户端向服务器端发出请求
    (b)服务器端接受到请求,发送公钥给客户端
    (c)客户端输入账户和密码通过服务器端的公钥加密回传给服务端
    (d)服务端通过自己的私钥解密,得到用户名和密码与本地作对比验证,验证成功则允许登录,反之亦然。

__示例:__

前提:CentOS 6 IP 为192.168.10.100
;CentOS 7 IP 为192.168.10.101

(1)使用ssh命令使两台主机通信

   [

root@centos6~]#ssh [email protected]
    The authenticity of host '192.168.10.100(192.168.10.100)' can't be established.
    RSA key fingerprint is a1:18:36:cc:e4:a1:de:c5:ad:6f:e4:ec:91:1d:d7:c4.
    Are you sure you want to continue connecting (yes/no)? yes  #第一次连接会询问是否信任此台主机
    Warning: Permanently added '192.168.10.100' (RSA) to the list of known hosts.
    [email protected]'s password:  #输入密码
    Last login: Sat Sep  9 23:30:57 2017 from 192.168.159.1# #登录成功


上面询问/etc/ssh/ssh_con1fig文件下的选项StrictHostKeyChecking 有关,如果该为no,则不会显示检查

 `[root@localhost~]#l.  #查看是否生成.ssh目录

上述过程中CentOS 6系统会自动创建`~/.ssh/known_hosts`且会复制CentOS 7中的公钥到自己主机上。

(2)上述的验证机制与公钥有关还是私钥有关呢?

下面我们再启动 一台虚拟主机 CentOS 7.2 IP 为 192.168.10.102
现在我们让CentOS 7.2 冒充CnetOS 6

情况一:修改CentOS 7.2的IP地址为192.168.10.100,尝试连接CentOS 7 

(a)修改IP地址为192.168.10.100

(b)把CentOS6服务端IP禁用
  
[root@localhost~]#ifconfig eth0 down

(c)使用客户机CentOS 7 连接

[root@localhost~]#ssh 192.168.10.100
会发出WARNING警告远程主机认证已经改变。

情况二:如果我们把公钥复制到CentOS 7.2中连接呢?

(a)将`/etc/ssh/ssh_host_rsa_key.pub`拷贝到冒充主机上

[root@localhost~]#scp /etc/ssh/ssh_host_rsa_key.pub 192.168.10.102:/etc/ssh

(b)连接CentOS 7.2

[root@localhost~]#ssh 192.168.10.100


会发出警告。

情况三:如果我们发私钥复制到CentOS7.2中,连接会发生什么情况?

[root@localhost~]#ssh 192.168.10.100

认证成功,所以我们在日常生产中保管好自己的私钥文件。

(5)ssh服务的最佳实践


建议    
    不要使用默认端口    Port    
    禁止使用version 1 protocol    Protocol    
    限制可登录用户    MaxAuthTries    
    设定空闲会话时长    ClientAliveInterval和ClientAliveCountMax    
    利用防火墙设置ssh访问策略    
    仅监听特定的IP地址    ListenAddress    
    基于口令认证时,使用强密码策略    
    基于密钥的认证    PubkeyAuthentication    
    禁止使用空密码    PasswordAuthentication    
    禁止root用户直接登录    PermitRootLogin    
    限制ssh的访问频度和并发在线数    MaxAuthTries和MaxSessions    
    做好日志分析    SyslogFacility    
三、基于密钥认证
1、工作机制
    (a)客户端在本机生成一对密钥
    (b)客户端通过密令将本机的公钥拷贝到服务器端,服务端会将客户端的公钥存在至`~/.ssh/authorized.keys`目录下
    (c)客户端再次发送请求时,包括IP、用户名;
    (d)服务端在通过上述目录查找是否有与之对应的公钥,如果查找成功响应IP和用户名,会随机生成一个字符串
    (e)服务端将使用客户端的公钥进行加密,然后发送给客户端
    (f)客户端得到服务端发来的消息后,客户端使用私钥进行解密,将解密的字符串发送给服务端
    (g)服务端接受客户端发来的字符串后,跟之前对比,如果一致,允许登录,反之亦然。
###2、生成密钥对命令的介绍
    ssh-keygen:authentication key generation, management and conversion
    格式:
        ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]   [-f output_keyfile]

    选项:
        -t 加密的类型
        -P 是否对生成的私钥加密
        -f 指定的文件名
    ssh-copy-id :install  your  public  key  in a remote machine’s authorized_keys
    格式:
        ssh-copy-id [-i [identity_file]] [user@]machine

    选项:
        -i 指定公钥存放的位置

###3、基于key的过程
(a)在客户端生CentOS 7在一对密钥

    [root@localhost~]#ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): #密钥存放的位置
    Enter passphrase (empty for no passphrase): #是否对密钥加密,建议加密,这里相当于选项-P
    Enter same passphrase again:  
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:  
    f5:f9:21:08:dd:2a:8d:f7:9f:88:4e:88:53:3e:45:a3 [email protected]
    The key's randomart p_w_picpath is:
    +--[ RSA 2048]----+
    |                 |
    |         . .     |
    |        . = .    |
    |         B = .   |
    |        E * + .  |
    |       + = . o . |
    |      o + . . .  |
    |       . o . o . |
    |         .o . o  |
    +-----------------+
(b)使用命令将公钥拷贝到服务端CentOS 6主机上

    [root@localhost~]#ssh-copy-id -i .ssh/id_rsa.pub [email protected]
    [root@centos6~]#ls .ssh/authorized_keys 查看是否在服务端生成目录`authorized.keys`
    .ssh/authorized_keys
(c)测试

    [root@localhost~]#ssh 192.168.10.100
    Last login: Thu Sep  7 18:39:01 2017 from 192.168.159.1  #登录成功

**如果我们私钥加密需要验证多台,如果我们一台一台的验证,这样显然不是我们想要的方法,下面就很好的解决了我们这个问题**

####ssh-agent命令介绍
    ssh-agent是个长时间持续运行的守护进程(daemon),设计它的唯一目的就是对解密的专用密钥进行高速缓存,这是一个一次性的过程,如果终端退出即消失。
####工作机制
      如果执行这条命令,会启动后台一个子进程。代理一开始并没有私钥文件,私钥文件是通过命令`ssh-add`添加。并且把文件~/.ssh/id_rsa, ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 and
     ~/.ssh/identity添加到代理中。通过使用环境变量能定位和验证。SSH_AUTH_SOCK和SSH_AGENT_PID环境变量。
####实现代理的方法
    (a)ssh-agent xterm &  利用内含的export命令执行环境使环境变量可用
    (b)eval `ssh-agent -s`
                -s sh ksh
                -c csh
####步骤

(a)对上述生成的密钥加密
   
    

 [root@localhost~]#ssh-keygen -p  #-p 修改密码
    Enter file in which the key is (/root/.ssh/id_rsa): 
    Key has comment '/root/.ssh/id_rsa'
    Enter new passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Pass phrases do not match.  Try again.


(b)启动代理

   

 [root@localhost~]#ssh-agent bash

#启动一个bash子进程
(c)将私钥文件添加至代理中

    

[root@localhost~]#ssh-add
    Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)


(d)测试
   

 [root@localhost~]#ssh 192.168.10.102
    Last login: Sun Sep 10 17:46:13 2017 from 192.168.10.101


登录成功,这样提高了我们的工作效率。
###4、利用xshell基于key连接
     在xshell中工具-->新建用户密钥生成向导-->选择密钥类型和密钥长度-->给密钥名称命名并给密钥加密-->选择公钥格式-->保存公钥文件至指定目录下-->将公钥复制到需要远程连接的主机上~/.ssh/authorized.keys目录下,如果没有文件需要创建此目录,并修改权限。
在生成密钥是选择不合适的公钥格式,可以使用密令修改:

[root@centos6~]#ssh-keygen -i -f PUBLIK.key >>~/.ssh/authorized.keys


        -i 读取不加密的私钥和公钥非OpenSSH兼容输出
##四、端口转发
在日常生产中,我们常常会遇到这样的问题,在公司运行一个服务或者一些程序,想要查看其运行状态及其结果等;公司的机器只能从内部访问外网,而内部外的并不能访问内部的机器;或者公司有一台ssh服务器,不能使用telnet服务去访问内部的主机,这样我们如何解决呢?由于ssh服务加密传输数据,我们可通过ssh服务解决上述问题。通过ssh连接首先构建一个”隧道“,然后可以通过这个隧道,远程连接到主机。
###1、ssh本地端口转发

格式:ssh -L localPort:remateIp1(需要远程连接的IP):rematePort  IP2(跳板机的IP)


选项 
-f 后台启用
-N 不打开远程shell,处于等待状态
-g 启用网关功能 

示例

假设这里有三台机器,CnetOS6.9-1 IP为192.168.159.138;CnetOS6.7-1 IP为192.168.159.139;CnetOS7.3-2 IP为192.168.159.161。CentOS7.3-2和CentOS7.3-1在公司的局域网中,CentOS6.9-1想连接CentOS7.3-2与之通信,该如何实现?

(1)模拟一个环境,先禁止CentOS6.9-1远程连接CentOS7.3-2
   

[root@localhost~]#iptables -A INPUT -s 192.168.159.138 -j REJECT



(2)首先确认要使用本地端口是否被别的服务占用

[root@centos7~]#ss -tn



(3)CentOS6.9-1利用ssh本地端口转发连接

[root@centos6~]#ssh -L 10001:192.168.159.161:23 -fN 192.168.159.139
[email protected]'s password: 
Last failed login: Tue Sep 12 05:04:50 CST 2017 from ``192.168.159.138 on ssh:notty
There were 4 failed login attempts since the last successful login.
Last login: Tue Sep 12 04:58:25 2017 from 192.168.159.1



(4)查看隧道是否建立成功

[root@centos6~]#ss -tn
State      Recv-Q Send-Q       Local Address:Port         Peer Address:Port 
ESTAB      0      0          192.168.159.138:22          192.168.159.1:4708`
  
ESTAB      0      0          192.168.159.138:35506     192.168.159.139:22`
                           #已经建立连接
[root@localhost~]#ss -tn
   #在CetnOS 7.3-2无连接
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port    
        
ESTAB      0      0      192.168.159.161:22                 192.168.159.1:474



(5)在CentOS6.9-1ftp服务连接操作了

[root@centos7~]#ssh -p 10000 127.0.0.1



(6)如果我们连接完成想删除“隧道”该怎么解决呢?此时只能同过kill命令删除

[root@centos7~]#kill -9 `pidof ssh`



2、ssh远程端口转发
与上述示例相反,内网中只有一台主机可以访问外网,而另外一台主机不能访问外网,但是另外一台主机要想与外部的主机连接时,只能让一台主机作为跳板机,连接至外部机器,下面是实现方法:

(1)先模拟出来一个环境,同上述环境一样

(2)在CentOS7.3-2主机上创建隧道

[root@centos7~]#ssh -R 9999:192.168.159.138:22 -fN 192.168.159.164

(3)查看端口是否创建成功

[root@centos7~]#ss -tn
State       Recv-Q Send-Q Local Address:Port                Peer Address:Port    
                 
ESTAB       0      0      192.168.159.139:51608              192.168.159.164:22


(4)在CentOS7.3-2连接CentOS6.9-1

[root@localhost~]#telnet 127.0.0.1 9999

(5)此处删除的方法更ssh本地端口转发一样。

3、ssh动态端口转发
上述的两种,只是点对点的转发,如果我们有许多的端口,显然这样操作是不理想的,所有ssh支持ssh动态端口转发功能。如果某一台机器不能受限制不能访问某些网站,而另一台主机可以访问,ssh动态转发就解决了这个问题。工作原理是本地机器上分配一个socket侦听port端口,一旦这个端口上有了连接,该连接就经过安全通道转发出去,根据应用程序的协议可以判断远程主机和哪里连接。

注意:只有root才能转发特权端口。

格式:ssh -D <local port> <SSH Server>

(1)建立通道

[root@centos7~]#ssh -D 1080 -fN 192.168.159.165



(2)测试是否成功

[root@centos7~]#curl --socks5 127.0.0.1 http://192.168.159.166
test

上述过程中与sshd_config中的几个选项有关,AllowTcpForwarding、
GatewayPorts

4、X协议转发

格式:ssh -X user@remotehost  gedit

X协议转发与sshd_config配置文件中的选项`X11Forwarding`有关。

五、复制文件命令介绍
1、scp命令
    scp:secure copy (remote file copy program)
格式:
        scp [options] [user@]host:/sourcefile /destpath 
        scp [options] /sourcefile [user@]host:/destpath


选项
    -c 压缩数据流
    -r 递归复制
    -p 保持原文件属性
    -q 静默模式
    -P PORT 指明远程主机的端口

2、rsync
    rsync: rsync - a fast, versatile, remote (and local) file-copying tool
 格式:
        Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
        Push: rsync [OPTION...] SRC... [USER@]HOST:DEST


选项
    -n 模拟复制过程 
    -v 显示详细过程 
    -r 递归复制 
    -p 保留权限 
    -t 保留时间戳 
    -g 保留组信息 
    -o 保留所有者信息 
    -l 将软连接文件本身复制 
    -L 将软连接文件指向的文件复制 
    -X 保留SElinux属性 
    -a 存档,但不保留ACL和SElinux属性 
**注意:rsync命令只复制原有文件修改的文件或目录。而scp不管是否修改文件属性都复制。**
3、sftp命令
    scp:secure file transfer program,交换式传输工具
    格式:
         sftp [user@]host[:file ...]
         sftp [user@]host[:dir[/]]

如果我们管理几十台或者更多机器,使用起来并不是特别方便,而且还耗时耗力。下面介绍介个轻量级的工具。
4、pssh
    pssh包是来自于epel源。
         /usr/bin/pnuke
         /usr/bin/prsync
         /usr/bin/pscp.pssh
         /usr/bin/pslurp
         /usr/bin/pssh
以上执行的命令。
   
    pssh命令: parallel ssh program
格式:

   pssh  [-vAiIP]  [-h hosts_file] [-H [user@]host[:port]] [-l user]
       [-p par] [-o outdir] [-e errdir] [-t timeout]  [-O  options]  [-x
       args] [-X arg] command ...


选项 
    -h HOST_FILE 包含IP的文件 
    -H [user@]IP[:port]  连接的主机,如果要接连多个主机用“”引起来,主机之间空格分开 
    -l USER|用户名 
    -p  并发数 
    -t 超时秒数 
    -o OUTDIR 输出目录,在该目录下创建 
    -e ERRDIR 错误输出目录 
    -x ARGS|传递过个命令,多个命令用“”引起来,使用空格分隔 
    -X  同-x意义一样,但每次只传递一个命令 
    -i 将输出结果输出当前终端 
    -I 读取每个输出命令,并传递ssh进程,允许脚本传送到标准输入 
    -v 显示ssh连接时的错误信息 
    -P 打印输出 
    -A 提示输入密码,并把密码传递给ssh服务 

示例

    pslurp:parallel process kill program
格式:
              pslurp  [-vAr]  [-h hosts_file] [-H [user@]host[:port]] [-l user]
       [-p par] [-o outdir] [-e errdir] [-t timeout]  [-O  options]  [-x
       args] [-X arg] [-L localdir] remote local

 
选项 
    -L localdir 复制远程主机文件或目录到本机指定的目录下 
    -r 递归复制 
        其他选项请参考pssh

    prsync  将文件或文件夹从本地同步到远程主机上
 格式:
           prsync [-vAraz] [-h hosts_file] [-H [user@]host[:port]] [-l user]
       [-p par] [-o outdir] [-e errdir] [-t timeout]  [-O  options]  [-x
       args] [-X arg] [-S args] local remote

 选项 
    -a 可以维持文件的属性 
    -z 压缩传输 
    pnuke:杀死远程主机上的进程,相当于killall

六、dropbear
Dropbear是一个相对较小的SSH服务器和客户端。它运行在一个基于POSIX的各种平台。 Dropbear是开源软件,在麻省理工学院式的许可证。 Dropbear是特别有用的“嵌入”式的Linux(或其他Unix)系统,如无线路由器。  <摘自:百度>

1、安装dropbear工具包
(a)从官网上下载dropbear源码包并安装有关编译的环境包组
(b)编译安装源码包

[root@centos7/usr/src]#tar xvf dropbear-2017.75.tar.bz2 
[root@centos7/usr/src/dropbear-2017.75]#./configure
[root@centos7/usr/src/dropbear-2017.75]#make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
[root@centos7/usr/src/dropbear-2017.75]#make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install

(c)有关命令的存放位置

/usr/local/sbin和/usr/local/bin

(d)生成key存放的位置

    dss /etc/dropbear/dropbear_dss_host_key
    rsa /etc/dropbear/dropbear_rsa_host_key
    ecdsa /etc/dropbear/dropbear_ecdsa_host_key

(e)创建目录并生成密钥

[root@centos7/usr/local/sbin]#mkdir /etc/dropbear
[root@centos7/usr/local/bin]#dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
    Generating key, this may take a while...
    Public key portion is:
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCfn+syhEMRgkxQ1Y/8Hzu54aTv23hLKyiDOTNVAqpZD+kS63TOcD4r5wCQsARNhl4e0kKWz9CLl6y3cWPxO+BbxCcZ+Ue2HqGQO2vhltzD2voL5xuOOg50nv1nrMrudS3kIYkg3gmVhn0Z0nKntJFdbzihzbLU0c1MgstTscu0PpX7q9j2c0mUHuYFqTmj2X4AJB0qjj8VZs93KTn3YyzVBph7mub8FQkS+fLjMvzan66+GjAtafeR+ezoFP6NAC7BuVaHaKoUNyP/myZgA3wkM4LL8OuoSk3uJia5ZDzDEsUNcHsmwaDVlJDGbjMRx+Djoafj9JNE7su+TmLMl2z root@centos7
    Fingerprint: md5 bf:3b:0a:85:94:85:e1:af:91:74:14:d3:e2:0c:6e:d0



(f)启动dropbear
dropbear选项
    -F    Don't fork into background前台执行    
    -E      Log to stderr rather than syslog输出信息在屏幕上    
    -p [address:]port    Listen on specified tcp port (and optionally address),up to 10 can be specified(default port is 22 if none specified)    

[root@centos7/usr/local/bin]#dropbear -p 2222 -F -E

(g)使用dbclinet远程连接

[root@centos6/usr/local/bin]#dbclient 192.168.159.139

(h)拷贝文件

[root@centos6/usr/local/bin]#scp /etc/fstab 192.168.159.139:/
    /usr/bin/dbclient: No such file or directory
    lost connection

此时连接会报错,说我们没有/usr/bin/dbclient

[root@centos6/usr/local/bin]#hash

通过hash命令查看确实是使用我们刚刚创建的路径程序,所有解决此问题创建一个软连接即可。

[root@centos6/usr/local/bin]#ln -sv /usr/local/bin/dbclient /usr/bin/dbclient
/usr/bin/dbclient' -> `/usr/local/bin/dbclient
[root@centos6/usr/local/bin]#scp /etc/fstab 192.168.159.139:




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章