sshlinux_安装sshlinux - CSDN
  • Linux ssh命令详解

    千次阅读 2019-03-23 13:28:56
    Linux ssh命令详解 SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。 ssh...

    Linux ssh命令详解

           SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。

    ssh服务端由2部分组成: openssh(提供ssh服务)    openssl(提供加密的程序)

    ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm等工具进行连接

    SSH的工作机制 

          服务器启动的时候自己产生一个密钥(768bit公钥),本地的ssh客户端发送连接请求到ssh服务器,服务器检查连接点客户端发送的数据和IP地址,确认合法后发送密钥(768bits)给客户端,此时客户端将本地私钥(256bit)和服务器的公钥(768bit)结合成密钥对key(1024bit),发回给服务器端,建立连接通过key-pair数据传输。       

    SSH的加密技术

    加密技术:传输过程,数据加密。             
    1.SSH1没有对客户端的秘钥进行校验,很容易被植入恶意代码 
    2.SSH2增加了一个确认联机正确性的Diffe_Hellman机制,每次数据的传输,Server都会检查数据来源的正确性,避免黑客入侵。                    
      SSH2支持RSA和DSA密钥    
            DSA:digital signature Algorithm  数字签名
            RSA:既可以数字签名又可以加密      

    SSH知识小结           

       1.SSH是安全的加密协议,用于远程连接Linux服务器                
       2.SSH的默认端口是22,安全协议版本是SSH2                
       3.SSH服务器端主要包含2个服务功能SSH连接和SFTP服务器                
       4.SSH客户端包含ssh连接命令和远程拷贝scp命令等 

    如何防止SSH登录入侵            

        1.密钥登录,更改端口                
        2.牤牛阵法                
        3.监听本地内网IP(ListenAddress 192.168.25.*)

    SSH功能大全   

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    1.登录                   

           ssh -p22 omd@192.168.25.137               

       2.直接执行命令  -->最好全路径                   

           ssh root@192.168.25.137 ls -ltr /backup/data                       

               ==>ssh root@192.168.25.137 /bin/ls -ltr /backup/data               

       3.查看已知主机                    

            cat /root/.ssh/known_hosts

       4.ssh远程执行sudo命令

           ssh -t omd@192.168.25.137 sudo rsync hosts /etc/

     

       5.scp               

                 1.功能   -->远程文件的安全(加密)拷贝                   

                     scp -P22 -r -p /home/omd/h.txt omd@192.168.25.137:/home/omd/               

                 2.scp知识小结                   

                     scp是加密远程拷贝,cp为本地拷贝                   

                     可以推送过去,也可以拉过来                   

                     每次都是全量拷贝(效率不高,适合第一次),增量拷贝用rsync

     

       6.ssh自带的sftp功能               

                 1.Window和Linux的传输工具                   

                      wincp   filezip                   

                   sftp  -->基于ssh的安全加密传输                   

                   samba   

                 2.sftp客户端连接                   

                    sftp -oPort=22 root@192.168.25.137                   

                    put /etc/hosts /tmp                   

                    get /etc/hosts /home/omd   

                3.sftp小结:                   

                    1.linux下使用命令: sftp -oPort=22 root@x.x.x.x                   

                    2.put加客户端本地路径上传                  

                    3.get下载服务器端内容到本地                   

                    4.远程连接默认连接用户的家目录

    ssh常见命令参数

    1

    2

    3

    4

    5

    6

    7

    usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]

               [-D [bind_address:]port] [-e escape_char] [-F configfile]

               [-i identity_file] [-L [bind_address:]port:host:hostport]

               [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]

               [-R [bind_address:]port:host:hostport] [-S ctl_path]

               [-W host:port] [-w local_tun[:remote_tun]]

               [user@]hostname [command]

    关于后台ssh服务的相关

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    # 查询openssl软件

        rpm -qa openssh openssl

    # 查询sshd进程

        ps -ef | grep ssh

            --> /usr/sbin/sshd

    # 查看ssh端口

        netstat -lntup | grep ssh  

        ss | grep ssh                (效果同上,同下,好用)

        netstat -a | grep ssh(记住这个)

        netstat -lnt | grep 22    ==>  查看22端口有没有开/ssh服务有没有开启

        技巧: netstat -lnt | grep ssh | wc -l -->只要大于2个就是ssh服务就是好的

    # 查看ssh的秘钥目录

        ll /root/.ssh/known_hosts  # 当前用户家目录的.ssh目录下

    # ssh的配置文件

        cat /etc/ssh/sshd_config   

    # ssh服务的关闭

        service sshd stop

    # ssh服务的开启:

        service sshd start

    # ssh服务的重启

        service sshd reload    [停止进程后重启] ==> 推荐

        service sshd restart   [干掉进程后重启] ==> 不推荐

    # ssh远程登录

        ssh 192.168.1.100      # 默认利用当前宿主用户的用户名登录

        ssh omd@192.168.1.100  # 利用远程机的用户登录

        ssh omd@192.168.1.100  -o stricthostkeychecking=no # 首次登陆免输yes登录

        ssh omd@192.168.1.100 "ls /home/omd"  # 当前服务器A远程登录服务器B后执行某个命令

        ssh omd@192.168.1.100 -t "sh /home/omd/ftl.sh"  # 当前服务器A远程登录服务器B后执行某个脚本

     

    image

    ssh免密设置

    1、进入用户的家目录

    1

    2

    [root@localhost ~]# cd /root/.ssh/             【root用户就在root目录下的.ssh目录】

    [root@localhost ~]# cd /home/omd/.ssh/   【普通用户就是在家目录下的.ssh目录】

    image

    2、根据DSA算法生成私钥和公钥【默认建立在当前用户的家目录】

    1

    2

    3

    [root@localhost .ssh]# ssh-keygen -t dsa     # 一路回车即可

                    id_dsa         -->私钥(钥匙)

                    id_dsa.pub     -->公钥(锁)

    image

    3.拷贝公钥给目标服务器

    1

    2

    [root@localhost .ssh]# ssh-copy-id -i id_dsa.pub omd@192.168.25.110              【 使用ssh登录的默认端口22】

    [root@localhost .ssh]# ssh-copy-id -i id_dsa.pub –p 666 omd@192.168.25.120   【使用ssh登录设置的端口666】

    4. 查看目标服务器生成的文件

    1

    [omd@localhost .ssh]$ ll /home/omd/.ssh/authorized_keys

    image

    5. 免密码登录目标服务器

    1

    ssh omd@192.168.25.110

    6. 总结一下钥匙和锁的关系

    1

    2

    3

    4

    5

    6

    1.多个钥匙开一把锁

          把id_dsa.pub 复制给各个服务器

     

    2.一个钥匙开duobasuo

          把id_dsa 传给各个服务器

          把id_dsa 传给自己 

    ssh排查问题

    1

    2

    3

    1.判断物理链路是否通  ping 192.168.25.130     线路 | 防火墙 | 是否同一个网的

                ping   本身是icmp协议

    2.判断服务是否正常

    1

    telnet 192.168.25.130 22

    1

    3.Linux防火墙

    1

    service iptables status ==>  /etc/init.d/iptables status  

    1

    4.打开ssh的调测进行观察

    1

    ssh -vvv omd@192.168.1.100

    SSH批量分发与管理方案小结


    1.利用root做ssh key验证

    优点:简单,易用
        缺点:安全性能差,无法禁止root远程连接


    2.利用普通用户omd                -->推荐


        思路:把要分发的文件拷贝到服务器用户的家目录,然后利用sudo提权拷贝分发的文件和对应目录
        优点:安全
        缺点:复杂,配置麻烦
        1.sudo提权
            echo 'omd     All=(All)      NOPASSWD:/usr/bin/rsync' >> /etc/sudoers 
            visudo -c
            grep omd /etc/sudoers
        2.ssh分发到服务器的家目录
            ssh -p22 -r /etc/hosts omd@192.168.25.137:~
        3.ssh使用sudo复制到目标服务器的/etc
            ssh -t omd@192.168.25.137 sudo rsync hosts /etc/

    3.拓展方案2,不用sudo,而是设置suid对固定命令提权

     优点:相当安全
           缺点:复杂,安全性较差,任何人都可以处理带有suid权限的命令 
           1.which rsync 
           2.chmod 4755 /usr/bin/rsync       

    ssh章节小结             

        1.ssh远程的加密连接协议,相关软件openssh,openssl                
        2.默认端口22                
        3.ssh版本协议                
        4.服务器ssh连接,ftp连接,sshd守护进程,开机启动                
        5.ssh客户端重要命令:ssh(用户登录&&远程命令),scp,sftp,                
        6.安全验证方式:口令,密钥  学习原理                
        7.ssh服务优化:改端口,改监听,no root,no empty,no DNS,
        8.ssh密钥对,公钥在服务器端,私钥在客户端

    修改ssh服务的启动文件sshd的几个点

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    1-1修改 /etc/ssh/sshd_config<br>        GSSAPIAuthentication yes    解决一台服务器管理多个ssh服务

        UseDNS no  加快响应速度因为在内网环境下

        PermitRootLogin no  不运行root用户直接登录

        Port 11544 更改访问端口号

        ListenAddress  192.168.25.130  只监听内网的IP

        Match User anoncvs     当前环境允许登录的用户

        PermitRootLogin no      是否允许root用户登录,一般不允许开

    1-2重启服务

        service sshd restart       写入命令进内存

        service sshd reload(优先)  reload是一个平滑的访问,不影响用户使用

    1-3查看连接端口

        netstat -an | grep EST

    SSH跳过HostKeyChecking,不用输入yes

    SSH跳过输入ssh跳过RSA key fingerprint输入yes/no

    在配置大量的节点之间需要ssh连通的时候,如果自动复制很多节点,都需要输入yes,两两节点之间都要互通一次,这样会造成很大的麻烦

    解决1;修改配置文件/etc/ssh/ssh_config

    1

    2

    找  到  # StrictHostKeyChecking ask  

    修改为:StrictHostKeyChecking no  

    解决2: 添加参数 –o  【o=option】

    1

    ssh root@192.168.25.133 -o "StrictHostKeyChecking no"

    1

    scp -o "StrictHostKeyChecking no" newfile.txt <a href="mailto:root@192.168.25.133:/root">root@192.168.25.133:/root</a>

    ssh带密码登录之sshpass的安装

    【下载地址】https://sourceforge.net/projects/sshpass/files/latest/download

    上传文件到服务器

    CentOS下安装:

    1

    2

    3

    4

    [root@localhost ~]# tar xf sshpass-1.06.tar.gz

    [root@localhost ~]# cd sshpass-1.06

    [root@localhost sshpass-1.06]# ./configure

    [root@localhost sshpass-1.06]# make && make install

    检查是否安装成功:

    1

    2

    [root@localhost sshpass-1.06]# which sshpass

    /usr/local/bin/sshpass

    远程登录主机:

    1

    sshpass -p FTL600@HH ssh omd@192.168.25.110 -o "StrictHostKeyChecking no"

    注意:如果是第一次登录,需要输入手动yes,此时sshpass并不会给提示,所以登录异常

    Ubuntu下安装方法一[推荐]:简单

    1

    omd@omd-virtual-machine:~/sshpass-1.06$ sudo apt install sshpass

    安装成功:

    1

    omd@omd-virtual-machine:~/sshpass-1.06$ which sshpass

    Ubuntu下安装方法二:

    1

    2

    3

    4

    5

    omd@omd-virtual-machine:~$ tar xf sshpass-1.06.tar.gz

    omd@omd-virtual-machine:~$ cd sshpass-1.06/

    omd @omd-virtual-machine:~/sshpass-1.06$ ./configure

    omd@omd-virtual-machine:~/sshpass-1.06$ sudo make && make install

    其同CentOS下安装

     

    ssh源码修改添加ssh访问标志位

    【更多参考】https://www.cnblogs.com/ftl1012/p/9459819.html

     

    附ssh的配置文件

    1

    /etc/ssh/sshd_config

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    113

    114

    115

    116

    117

    118

    119

    120

    121

    122

    123

    124

    125

    126

    127

    128

    129

    130

    131

    132

    133

    134

    135

    136

    137

    138

    139

    [root@localhost .ssh]# cat /etc/ssh/sshd_config

    #       $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $

     

    # This is the sshd server system-wide configuration file.  See

    # sshd_config(5) for more information.

     

    # This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

     

    # The strategy used for options in the default sshd_config shipped with

    # OpenSSH is to specify options with their default value where

    # possible, but leave them commented.  Uncommented options change a

    # default value.

     

    #Port 22

    #AddressFamily any

    #ListenAddress 0.0.0.0

    #ListenAddress ::

     

    # Disable legacy (protocol version 1) support in the server for new

    # installations. In future the default will change to require explicit

    # activation of protocol 1

    Protocol 2

     

    # HostKey for protocol version 1

    #HostKey /etc/ssh/ssh_host_key

    # HostKeys for protocol version 2

    #HostKey /etc/ssh/ssh_host_rsa_key

    #HostKey /etc/ssh/ssh_host_dsa_key

     

    # Lifetime and size of ephemeral version 1 server key

    #KeyRegenerationInterval 1h

    #ServerKeyBits 1024

     

    # Logging

    # obsoletes QuietMode and FascistLogging

    #SyslogFacility AUTH

    SyslogFacility AUTHPRIV

    #LogLevel INFO

     

    # Authentication:

     

    #LoginGraceTime 2m

    #PermitRootLogin yes

    #StrictModes yes

    #MaxAuthTries 6

    #MaxSessions 10

     

    #RSAAuthentication yes

    #PubkeyAuthentication yes

    #AuthorizedKeysFile     .ssh/authorized_keys

    #AuthorizedKeysCommand none

    #AuthorizedKeysCommandRunAs nobody

     

    # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts

    #RhostsRSAAuthentication no

    # similar for protocol version 2

    #HostbasedAuthentication no

    # Change to yes if you don't trust ~/.ssh/known_hosts for

    # RhostsRSAAuthentication and HostbasedAuthentication

    #IgnoreUserKnownHosts no

    # Don't read the user's ~/.rhosts and ~/.shosts files

    #IgnoreRhosts yes

     

    # To disable tunneled clear text passwords, change to no here!

    #PasswordAuthentication yes

    #PermitEmptyPasswords no

    PasswordAuthentication yes

     

    # Change to no to disable s/key passwords

    #ChallengeResponseAuthentication yes

    ChallengeResponseAuthentication no

     

    # Kerberos options

    #KerberosAuthentication no

    #KerberosOrLocalPasswd yes

    #KerberosTicketCleanup yes

    #KerberosGetAFSToken no

    #KerberosUseKuserok yes

     

    # GSSAPI options

    #GSSAPIAuthentication no

    GSSAPIAuthentication yes

    #GSSAPICleanupCredentials yes

    GSSAPICleanupCredentials yes

    #GSSAPIStrictAcceptorCheck yes

    #GSSAPIKeyExchange no

     

    # Set this to 'yes' to enable PAM authentication, account processing,

    # and session processing. If this is enabled, PAM authentication will

    # be allowed through the ChallengeResponseAuthentication and

    # PasswordAuthentication.  Depending on your PAM configuration,

    # PAM authentication via ChallengeResponseAuthentication may bypass

    # the setting of "PermitRootLogin without-password".

    # If you just want the PAM account and session checks to run without

    # PAM authentication, then enable this but set PasswordAuthentication

    # and ChallengeResponseAuthentication to 'no'.

    #UsePAM no

    UsePAM yes

     

    # Accept locale-related environment variables

    AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES

    AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT

    AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE

    AcceptEnv XMODIFIERS

     

    #AllowAgentForwarding yes

    #AllowTcpForwarding yes

    #GatewayPorts no

    #X11Forwarding no

    X11Forwarding yes

    #X11DisplayOffset 10

    #X11UseLocalhost yes

    #PrintMotd yes

    #PrintLastLog yes

    #TCPKeepAlive yes

    #UseLogin no

    #UsePrivilegeSeparation yes

    #PermitUserEnvironment no

    #Compression delayed

    #ClientAliveInterval 0

    #ClientAliveCountMax 3

    #ShowPatchLevel no

    #UseDNS yes

    #PidFile /var/run/sshd.pid

    #MaxStartups 10

    #PermitTunnel no

    #ChrootDirectory none

     

    # no default banner path

    #Banner none

     

    # override default of no subsystems

    Subsystem       sftp    /usr/libexec/openssh/sftp-server

     

    # Example of overriding settings on a per-user basis

    #Match User anoncvs

    #       X11Forwarding no

    #       AllowTcpForwarding no

    #       ForceCommand cvs server

    展开全文
  • Linux ssh远程连接

    千次阅读 2019-05-18 20:41:33
    1.使用ssh客户端 问题 1)准备两台虚拟机A、B 2)主机A的IP地址为 192.168.8.128/24 3)主机B的IP地址为 192.168.8.15/24,与A可互通 4)完成以下远程访问操作 5)从主机A上以root身份登入主机B 6)在主机B上创建用户...

    1.使用ssh客户端
    问题
    1)准备两台虚拟机A、B
    2)主机A的IP地址为 192.168.8.128/24
    3)主机B的IP地址为 192.168.8.15/24,与A可互通
    4)完成以下远程访问操作
    5)从主机A上以root身份登入主机B
    6)在主机B上创建用户student,设置密码redhat
    7)从主机A上以用户student登入主机B
    方案
    SSH的服务名为sshd,它是一个独立服务。Linux默认安装并自启动的一个服务。
    准备两台虚拟机,我们采用的最简单的方式为克隆一台B。将原有的虚拟机关机名称命名为A,克隆一台B。
    注意:两台虚拟机需互相通信,为了方便所以提前要把A的网络类型,更改为VMnet8。再进行克隆。
    克隆后B需要更改网卡名称,这里涉及到第四阶段udev规则的知识。我们这里简单理解,udev是动态的管理设备,可以为设备起一个唯一的名字。说的简单点就是设备名字的命名规则。
    步骤
    实现此案例需要按照如下步骤进行。
    步骤一:虚拟机克隆
    将原有的虚拟机关机名称命名为A。如图-1所示,右击虚拟机A选项卡–>管理–>克隆。
    在这里插入图片描述
    图-1
    如图-2所示选择“下一步”。
    在这里插入图片描述
    图-2
    如图-3所示,选择虚拟机中的当前状态–>下一步。
    在这里插入图片描述
    图-3
    如图-4所示,选择创建链接克隆–>下一步。
    在这里插入图片描述
    图-4
    如图-5所示,克隆虚拟机名字命名成B–>更改存放位置–>完成。
    在这里插入图片描述
    图-5
    如图-6所示,克隆完成选择“关闭”。
    在这里插入图片描述图-6
    将两台虚拟机全部开机。
    注意:准备环境,两台虚拟机都要操作:关闭NetworkManager、关闭防火墙、关闭SELinux。
    命令操作如下所示:
    [root@svr5 /]# /etc/init.d/NetworkManager stop //当前关闭
    [root@svr5 /]# chkconfig NetworkManager off //配置自起状态
    [root@svr5 /]# iptables –F //清空防护墙策略
    [root@svr5 /]# /etc/init.d/iptables save //将空策略的防火墙保存
    iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
    [root@svr5 /]# /etc/init.d/iptables stop //停止防火墙服务
    [root@svr5 /]# chkconfig iptables off //配置自起状态
    [root@svr5 /]# getenforce //查看SELinux状态
    Enforcing
    [root@svr5 /]# setenforce 0 //当前关闭SELinux
    [root@svr5 /]# getenforce //查看SELinux是否关闭Permissive为不启用
    Permissive
    [root@svr5 /]# cat /etc/selinux/config //永久关闭SELinux,需修改配置文件

    permissive - SELinux prints warnings instead of enforcing.


    SELINUX=permissive

    步骤二:主机B的IP地址为 192.168.8.15/24,与A可互通
    分析: 会发现B网卡识别错误,没有eth0,更改udev规则重新命名网卡名称。
    将B的主机名更改为pc15.tarena.com方便区分,在B上操作。
    命令操作如下所示:
    [root@pc15 桌面]# hostname pc15.tarena.com
    [root@pc15 桌面]# vim /etc/sysconfig/network
    [root@pc15 桌面]# grep pc15 /etc/sysconfig/network
    HOSTNAME=pc15.tarena.com
    [root@pc15 桌面]#
    修改udev规则,重新命名网卡名称。
    分析: 以MAC地址为准,将ifconfig命令所识别到的MAC、网卡配置文件、udev配置文件做到统一即可,以ifconfig命令所识别到的MAC为准。
    命令操作如下所示:
    [root@pc15 桌面]# ifconfig //可以看到没有eth0
    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:12 errors:0 dropped:0 overruns:0 frame:0
    TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:720 (720.0 b) TX bytes:720 (720.0 b)

    [root@pc15 桌面]# ifconfig eth1 //查看ifconfig识别的网卡MAC地址
    eth1 Link encap:Ethernet HWaddr 00:0C:29:2F:32:FA //可以复制此处MAC方便更改
    BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
    //修改网卡配置文件(注意要与上条命令检测的MAC地址一致)
    [root@pc15桌面]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    HWADDR=00:0C:29:2F:32:FA
    TYPE=Ethernet
    ONBOOT=yes
    NM_CONTROLLED=no
    BOOTPROTO=none
    IPADDR=192.168.8.15 //ip地址保证不要冲突
    NETMASK=255.255.255.0
    //修改udev规则(保留与ifconfig -a eth1 所识别的MAC一致的一行,其余全部删除或注释)修改网卡名
    [root@pc15桌面]# cat /etc/udev/rules.d/70-persistent-net.rules
    SUBSYSTEM==“net”,ACTION==“add”, DRIVERS=="?", ATTR{address}"00:0C:29:2F:32:FA ", ATTR{type}“1”, KERNEL=="eth", NAME=“eth0”
    [root@pc15桌面]# modprobe -rv e1000 //卸载网卡驱动
    [root@pc15桌面]# modprobe -v e1000 //挂载网卡驱动
    [root@pc15桌面]# /etc/init.d/network restart
    [root@pc15 桌面]# ifconfig eth0
    eth0 Link encap:Ethernet HWaddr 00:0C:29:2F:32:FA
    inet addr:192.168.8.15 Bcast:192.168.8.255 Mask:255.255.255.0
    inet6 addr: fe80::20c:29ff:fe2f:32fa/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 b) TX bytes:636 (636.0 b)

    [root@pc15 桌面]#
    在B上操作,测试与A通信。
    命令操作如下所示:
    [root@pc15 桌面]# ping -c 3 192.168.8.128
    PING 192.168.8.128 (192.168.8.128) 56(84) bytes of data.
    64 bytes from 192.168.8.128: icmp_seq=1 ttl=64 time=12.6 ms
    64 bytes from 192.168.8.128: icmp_seq=2 ttl=64 time=0.188 ms
    64 bytes from 192.168.8.128: icmp_seq=3 ttl=64 time=0.257 ms

    — 192.168.8.128 ping statistics —
    3 packets transmitted, 3 received, 0% packet loss, time 2008ms
    rtt min/avg/max/mdev = 0.188/4.350/12.606/5.837 ms
    [root@pc15 桌面]#
    步骤三:完成以下远程访问操作
    从主机A上以root身份登入主机B。
    分析: 使用ssh远程连接时输入的用户名与密码永远都是对方的,本题为B的。
    在A上操作,命令操作如下所示:
    [root@svr5 ~]# ssh root@192.168.8.15
    The authenticity of host ‘192.168.8.15 (192.168.8.15)’ can’t be established.
    RSA key fingerprint is e3:48:b7:e0:d5:9d:47:01:2b:06:be:1c?c0:98:63.
    Are you sure you want to continue connecting (yes/no)? yes //首次访问会提示
    Warning: Permanently added ‘192.168.8.15’ (RSA) to the list of known hosts.
    //SSH服务端默认会进行DNS解析,因此为了提升速度建议编写hosts配置文件
    按Ctrl+c直接结束
    [root@svr5 ~]# vim /etc/hosts
    [root@svr5 ~]# tail -n 1 /etc/hosts
    192.168.8.15 pc15.tarena.com
    [root@svr5 ~]# ssh root@192.168.8.15 //再次尝试登录
    root@192.168.8.15’s password: //输入密码不显示
    Last login: Tue Mar 3 10:07:46 2015
    [root@pc15 ~]# hostname //登录成功
    pc15.tarena.com
    [root@pc15 ~]# ifconfig eth0
    eth0 Link encap:Ethernet HWaddr 00:0C:29:2F:32:FA
    inet addr:192.168.8.15 Bcast:192.168.8.255 Mask:255.255.255.0
    inet6 addr: fe80::20c:29ff:fe2f:32fa/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:241 errors:0 dropped:0 overruns:0 frame:0
    TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:21391 (20.8 KiB) TX bytes:9896 (9.6 KiB)
    [root@pc15 ~]# exit //退出
    logout
    Connection to 192.168.8.15 closed.
    [root@svr5 ~]#
    在主机B上创建用户student,设置密码redhat。
    在B上操作,命令操作如下所示:
    [root@pc15 桌面]# id student
    uid=500(student) gid=500(student) 组=500(student)
    [root@pc15 桌面]# passwd student
    更改用户 student 的密码 。
    新的 密码:
    无效的密码: WAY 过短
    无效的密码: 是回文
    重新输入新的 密码:
    passwd: 所有的身份验证令牌已经成功更新。
    [root@pc15 桌面]#
    从主机A上以用户student登入主机B,在A上操作,命令操作如下所示:
    [root@svr5 ~]# ssh student@192.168.8.15
    student@192.168.8.15’s password:
    Last login: Mon Mar 2 13:01:16 2015
    [student@pc15 ~]$ hostname
    pc15.tarena.com
    [student@pc15 ~]$ pwd
    /home/student
    [student@pc15 ~]$
    2.访问非默认端口、图形转发
    问题
    1)修改主机B的sshd服务端口
    2)将端口号改为 8022
    3)重启 sshd 服务,确认监听状态
    4)从主机A远程登入主机B
    5)恢复主机B的sshd服务端口
    6)从主机A再次远程登入主机B,且支持图形程序
    方案
    对于ssh服务,它有两个配置文件一个是/etc/ssh/sshd_config服务端配置文件,另一个是/etc/ssh/ssh_config客户端配置文件,经常用到是/etc/ssh/sshd_config服务端配置文件。
    步骤
    实现此案例需要按照如下步骤进行。
    步骤一:修改主机B的sshd服务端口
    在B上操作,将端口号改为 8022,命令操作如下所示:
    [root@pc15 桌面]# vim /etc/ssh/sshd_config //注意配置文件为服务器端配置文件
    [root@pc15 桌面]# grep 8022 /etc/ssh/sshd_config //注意此字段原先是被注释的
    Port 8022 //打开注释更改
    [root@pc15 桌面]#
    在B上操作,重启 sshd 服务,确认监听状态,命令操作如下所示:
    [root@pc15 桌面]# netstat -anptu | grep 8022
    [root@pc15 桌面]# /etc/init.d/sshd restart //需重启服务才能神效
    停止 sshd: [确定]
    正在启动 sshd: [确定]
    [root@pc15 桌面]# netstat -anptu | grep 8022
    tcp 0 0 0.0.0.0:8022 0.0.0.0:* LISTEN 3052/sshd
    tcp 0 0 :::8022 ::? LISTEN 3052/sshd
    [root@pc15 桌面]#
    步骤二:从主机A远程登入主机B
    在A上操作,命令操作如下所示:
    [root@svr5 ~]# ssh root@192.168.8.15
    ssh: connect to host 192.168.8.15 port 22: Connection refused
    [root@svr5 ~]# ssh -p 8022 root@192.168.8.15 //需加上-p选项和对应的端口号
    root@192.168.8.15’s password:
    Last login: Tue Mar 3 10:43:50 2015 from svr5.tarena.com
    [root@pc15 ~]# //访问成功
    恢复主机B的sshd服务端口,在B上操作,命令操作如下所示:
    [root@pc15 桌面]# vim /etc/ssh/sshd_config
    [root@pc15 桌面]# grep 8022 /etc/ssh/sshd_config //将其注释即可,遵循默认端口22
    #Port 8022
    [root@pc15 桌面]# /etc/init.d/sshd restart
    停止 sshd: [确定]
    正在启动 sshd: [确定]
    [root@pc15 桌面]# netstat -anptu | grep 22
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3139/sshd
    tcp 0 0 :::22 ::? LISTEN 3139/sshd
    [root@pc15 桌面]#
    从主机A再次远程登入主机B,且支持图形程序,在A上操作,命令操作如下所示:
    [root@svr5 桌面]# ssh -X root@192.168.8.15 //加上-X选项
    root@192.168.8.15’s password:
    Last login: Tue Mar 3 11:25:59 2015 from svr5.tarena.com
    /usr/bin/xauth: creating new authority file /root/.Xauthority
    [root@pc15 ~]# firefox
    ……
    3.使用scp远程复制工具
    问题
    1)在主机A上使用scp下载文档
    2)将主机B上的/root/install.log文件复制到/opt下
    3)将主机B上的/boot目录复制到本地的/opt下
    4)在主机A上使用scp上传文档
    5)确保主机B上有本地用户lisi
    6)将本地的/root/install.log文件复制到主机B上用户lisi的家目录下,以用户lisi的密码验证
    方案
    scp是非常方便的远程复制工具:
    上传:scp [-r] 用户名@服务器:路径 本地路径
    下载:scp [-r] 本地路径 用户名@服务器:路径
    上传下载时要注意,权限问题。
    上传:本地要有读取和执行权限,对远程主机要有读取、执行、写入。
    下载:本地要有读取、执行、写入,对远程主机要有读取和执行权限。
    步骤
    实现此案例需要按照如下步骤进行。
    步骤一:在主机A上使用scp下载文档
    将主机B上的/root/install.log文件复制到/opt下,命令操作如下所示:
    [root@svr5 ~]# ls /opt/
    cpuburn-in README rh
    [root@svr5 ~]# scp root@192.168.8.15:/root/install.log /opt/
    root@192.168.8.15’s password:
    install.log 100% 38KB 38.4KB/s 00:00
    [root@svr5 ~]# ls /opt/
    cpuburn-in install.log README rh
    [root@svr5 ~]#
    将主机B上的/boot目录复制到本地的/opt下,命令操作如下所示:
    [root@svr5 ~]# ls /opt/
    cpuburn-in install.log README rh
    [root@svr5 ~]# scp -r root@192.168.8.15:/boot/ /opt/
    root@192.168.8.15’s password:
    vmlinuz-2.6.32-431.el6.x86_64 100% 4032KB 3.9MB/s 00:00
    .vmlinuz-2.6.32-431.el6.x86_64.hmac 100% 166 0.2KB/s 00:00
    System.map-2.6.32-431.el6.x86_64 100% 2459KB 2.4MB/s 00:00
    ……
    [root@svr5 ~]# ls /opt/
    boot cpuburn-in install.log README rh
    [root@svr5 ~]#
    步骤二:在主机A上使用scp上传文档
    确保主机B上有本地用户lisi,在B上操作,命令操作如下所示:
    [root@pc15 桌面]# id lisi
    id: lisi:无此用户
    [root@pc15 桌面]# useradd lisi
    [root@pc15 桌面]# passwd lisi
    更改用户 lisi 的密码 。
    新的 密码:
    无效的密码: WAY 过短
    无效的密码: 是回文
    重新输入新的 密码:
    passwd: 所有的身份验证令牌已经成功更新。
    [root@pc15 桌面]#
    将本地的/root/install.log文件复制到主机B上用户lisi的家目录下,以用户lisi的密码验证。
    在A上操作,命令操作如下所示:
    [root@svr5 ~]# scp /root/install.log lisi@192.168.8.15:/home/lisi
    lisi@192.168.8.15’s password:
    install.log 100% 38KB 38.4KB/s 00:00
    [root@svr5 ~]#
    在B上操作,查看验证。命令操作如下所示:
    [root@pc15 桌面]# ls /home/lisi/
    install.log
    [root@pc15 桌面]#

    展开全文
  • ssh密钥登录linux

    千次阅读 2018-08-27 18:24:06
    ----------------------- 问题起源:There were 16753 failed login attempts since the last successful login. ... ----------------------- ...准备工作:了解ssh,由于之前了解过ssh,直接百度获取...

    -----------------------

    问题起源:There were 16753 failed login attempts since the last successful login.

    问题所在:由于没有配置登录限制,都是使用ssh的密码登录的,所以服务器容易受到攻击。

    -----------------------

    准备工作:了解ssh,由于之前了解过ssh,直接百度获取想要的信息。(个人比较健忘,只知道大概命令和处理方式,实际操作还是要查资料)

    • 1、生成ssh秘钥对

    由于我是在window系统生成的秘钥对,而window系统不支持ssh-keygen命令,还好window安装了git,git命令中支持这个,可以使用git bash命令行。

    基本命令:

    ssh-keygen -t rsa


      执行完这个命令后,会在git命令行文件夹里生成两个文件id_rsa(私钥)、id_rsa.pub(公钥),(如果在linux系统中),则生成在当前用户的根目录中,如root/.ssh/文件夹中,(注意.ssh文件夹是隐藏的,习惯使用命令:ll,无法查看,需使用:ls -la)。

    tips:顺便了解了ssh-keygen参数说明,附上链接https://www.cnblogs.com/sunjf/p/ubutu_ssh.html

    优化一下生成语句:

    ssh-keygen -t rsa -C "公钥内容注释" -f "生成的文件名"
    • 2、将公钥拷贝到要免登陆的机器上

    使用rz命令上传id_rsa.pub到/home中,

    执行

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    把id_rsa.pub追加到authorized_keys文件中(注意文件路径)。

    • 3、需要为公钥目录和密钥文件本身设置权限
    chmod 700 .ssh
    chmod 600 .ssh/authorized_keys
    • 4、ssh服务端配置sshd_config
    vim /etc/ssh/sshd_config
    
    
    
    #禁用SSH密码验证
    PasswordAuthentication no

    5、重新启动SSH服务

    systemctl restart sshd

    6、登录,使用的是Xshell 工具(本来想使用 ssh -i id_rsa root@<ssh_server_ip>登录的,结果不行,只能使用工具了。直接打开,无需输入密码,结果成功。

     

    ===========================================

    这样还是没起到安全防护,需添加受限用户帐户

    • 1、添加账号,创建用户lris,您想要的用户名,并指定密码:
    useradd lris && passwd lris

    添加一个admin组

    groupadd admin 

    将lris添加到admin组中

    usermod -g admin lris

    为lris用户设定sudo权限

    vim /etc/sudoers
    中找到root ALL=(ALL) ALL,在下行添加
    lris ALL=(ALL) ALL
    • 2、创建并发送ssh秘钥对
    cat /home/id_rsa.pub >> /home/lris/.ssh/authorized_keys
    • 3、改变文件权限
      #/home/.ssh
      
      sudo chown root:root authorized_keys
      sudo chmod 700 .ssh
      sudo chmod 600 .ssh/authorized_keys

       

    • 4、ssh服务器配置如下
      vim /etc/ssh/sshd_config
      #禁用root账户登录
      PermitRootLogin no
      
      #禁用密码登录
      PasswordAuthentication no

      5、重启ssh服务器

    ------------------------------------------------

    出现问题登录不了,解决办法,

    1、登录,浏览器 VNC 方式登录

    2、这里可以实现原始的账号+密码方式登录,进行文件修改操作。(只要能进入系统,什么都好说。)

    展开全文
  • Linux安装SSH

    千次阅读 2018-12-25 14:23:02
    Linux安装SSH 1.首先确保虚拟机能连上网 2.更新源列表:sudo apt-get update(必须要做,否则可能会有潜在异常) 3.安装ssh:输入"sudo apt-get install openssh-server"–&gt;回车–&gt;输入&...

    Linux安装SSH

    1.首先确保虚拟机能连上网


    2.更新源列表:sudo apt-get update(必须要做,否则可能会有潜在异常)
    3.安装ssh:输入"sudo apt-get install openssh-server"–>回车–>输入"y"–>回车–>安装完成。
    4.查看ssh服务是否启动,打开"终端窗口",输入"sudo ps -e |grep ssh"–>回车–>有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"–>回车–>ssh服务就会启动。

    ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。
    1.创建ssh-key,这里我们采用rsa方式

    ssh-keygen -t rsa -P “”     #(P是要大写的,后面跟"")

    (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

    2.进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的

    cd ~/.ssh
    cat id_rsa.pub >> authorized_keys

     

     

    3.登录localhost
    ssh localhost 

    在安装的时候可能会遇到这个问题

    The authenticity of host 'localhost (127.0.0.1)' can't be established.

    Host key verification failed.
    解决办法

    sudo nano /etc/ssh/ssh_config

        StrictHostKeyChecking no
        UserKnownHostsFile /dev/null

    登陆之后还要退出来,因为用ssh操作的不是你自己的本机

    在其他节点上也安装ssh,安装完这个就可以使用编写的脚本的xcall和xsync

    把主操作节点的id_rsa.pub放到共享文件夹,之后其他次节点从共享文件夹追加到authorized_keys中

    sudo cat /mnt/hgfs/LinuxShareDir/id_rsa.pub >> ~/.ssh/authorized_keys 

    逐个去测试看能否登录到你的其他主机

     

    展开全文
  • linux安装ssh和开启 ssh服务

    万次阅读 多人点赞 2018-08-02 19:53:13
    1.安装SSH 如果你用的是redhat,fedora,centos等系列linux发行版,那么敲入以下命令: sudo yum install sshd 或 sudo yum install openssh-server(由osc网友 火耳提供) 如果你使用的是debian,ubuntu,linux ...
  • linux下安装SSH服务及使用详解

    万次阅读 2019-04-28 10:40:41
    linux下安装SSH服务及使用详解 ssh服务介绍说明 secure shell protocol简称SSH,是由IETF网络工作小组(network working group) 制定,在进行数据传输之前,SSH先对联级数据包通过加密技术进行加密处理,加密后在进行数据...
  • ssh登录linux

    千次阅读 2019-04-21 19:19:41
    上一篇提到用ssh登录centos好处很多,许多linux系统管理员都在用ssh。在windows下ssh客户端主要有puTTY、Xshell、secureCRT、ssh secure shell。linux下有openssh,这是个命令行工具。这篇主要将puTTY和Xshell的使用...
  • SSH(Secure SHell)是Linux、Unix、Mac及其他网络设备最常用的远程CLI管理协议,SSH使用秘钥对数据进行加密,保证了远程管理数据的安全性。 SSH2是现在广泛使用的ssh版本 SSH协议使用TCP协议,端口号为22 ...
  • SSH CentOS6.8 刚开始我的情况是这样的:带颜色的显示不出来,然后还能看到,此处有内容,猜测是SecureCRT字体颜色的问题  详细图解: ps:为了更好的适应中文,建议字符编码选 UTF-8 -&gt;选项-&gt...
  • java通过ssh操作linux服务器

    千次阅读 2016-12-02 14:44:21
    java使用ssh操作linux
  • python sshlinux

    千次阅读 2016-05-12 20:04:13
    问题:使用python脚本对...1. 使用paramiko模块实现ssh登录部分测试环境:virtualbox+linux mint17python sshlinuxpython模块paramiko已实现ssh协议,import即可 代码实现:import paramiko import pprint #pre
  • Window上通过SSH连接linux终端

    万次阅读 2018-11-26 16:35:28
    window通过ssh连接linux 1.window上要安装ssh  下载连接:https://www.mls-software.com/opensshd.html  版本:OpenSSH 7.9p1-1  下载好后安装 2.linux上启动ssh服务  有些可能没有ssh服务,需要下载安装  2.1...
  • LINUX 使用ssh客户端

    千次阅读 2019-05-21 17:56:55
    问题 1)准备两台虚拟机A、B 2)主机A的IP地址为 192.168.8.128/24 3)主机B的IP地址为 192.168.8.15/24,与A可互通 4)完成以下远程访问操作 5)从主机A上以root身份登入主机B ...7)从主机A上以用户...Linux默认安装并...
  • windows通过ssh连接linux机器

    千次阅读 2014-02-09 13:05:40
    在我自己的电脑上,连接工具和文件传输工具 1.linux端的开启 2.windows端的操作
  • Java进行ssh登录linux 后执行命令

    千次阅读 2019-08-15 15:49:15
    Java进行ssh登录linux 后执行命令 最近,由于维护的服务器一直重启(非本地原因),每次部署都比较麻烦。于是抽空研究了一下如果通过java进行ssh登录,并发送一些命令的方案。这里我写一个简单例子,登录,然后获取...
  • Windows下通过ssh连接Linux

    千次阅读 2019-07-31 22:26:20
    我的手里有一台windows的电脑,想通过它链接远程的Linux主机或者本机虚拟机中的Linux主机,当然,有很多的远程链接软件,比如著名的xshell和SecureCRT等等,但有时为了快速链接远程linux主机或者本机虚拟机中的Linux...
  • Linux ssh下实现免密码登录

    万次阅读 2018-05-12 09:46:20
    Linux ssh下实现免密码登录 在日常的工作中我们不免要在各种个linux服务器之前来回... 生成linux下的密钥要用到 ssh-keygen 命令,一般执行完这个命令公钥和私钥会生成到 .ssh 的隐藏目录。在执行这个命令之前我们...
  • 怎样从windows通过SSH远程连接Linux

    千次阅读 2019-05-28 20:34:10
    SSH(安全外壳协议) SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议...
  • 解决SSH连接linux中文显示乱码问题

    万次阅读 2012-01-13 14:42:13
    每次装完linux,用SSH连接,中文总是显示乱码。 解决方法:编辑/etc/sysconfig/i18n,将其中的 LANG="zh_CN.UTF-8" 改为 LANG="zh_CN.GB2312" 。 我的服务器设置为: LANG="en_US.UTF-8" SYSFONT="latarcyrheb...
  • Linux下通过SSH实现远程连接

    万次阅读 2017-11-30 19:53:56
    SSH 远程连接 腾讯云服务器
1 2 3 4 5 ... 20
收藏数 264,624
精华内容 105,849
关键字:

sshlinux