openssh_openssh-server - CSDN
  • openssh

    2019-07-01 15:03:14
    1.1 OpenSSH 简介 OpenSSH这一术语指系统中使用的Secure Shell软件的软件实施。用于在远程系统上安全运行shell。如果您在可提供ssh服务的远程Linux系统中拥有用户帐户,则ssh是通常用来远程登录到该系统的命令。ssh...

    1.1 OpenSSH 简介

    OpenSSH这一术语指系统中使用的Secure Shell软件的软件实施。用于在远程系统上安全运行shell。如果您在可提供ssh服务的远程Linux系统中拥有用户帐户,则ssh是通常用来远程登录到该系统的命令。ssh命令也可用于在远程系统中运行命令。

    常见的远程登录工具有:

    • telnet
    • ssh
    • dropbear
    telnet   //远程登录协议,23/TCP
        认证明文
        数据传输明文
    
    ssh         //Secure SHell,应用层协议,22/TCP
        通信过程及认证过程是加密的,主机认证
        用户认证过程加密
        数据传输过程加密
        
    dropbear    //嵌入式系统专用的SSH服务器端和客户端工具
    

    1.2 SSH 版本

    openssh有两个版本,分别为v1和v2,其特点如下:
    
    v1:基于CRC-32做MAC,无法防范中间人(man-in-middle)攻击
    v2:双方主机协议选择安全的MAC方式。基于DH算法做密钥交换,基于RSA或DSA算法实现身份认证
    

    1.3 SSH 认证方式

    openssh有两种认证方式,分别是:

    • 基于口令认证
    • 基于密钥认证

    1.4 openSSH 的工作模式

    openSSH是基于C/S架构工作的。
    
    服务器端    //sshd,配置文件在/etc/ssh/sshd_config
    客户端     //ssh,配置文件在/etc/ssh/ssh_config
        ssh-keygen      //密钥生成器
        ssh-copy-id     //将公钥传输至远程服务器
        scp             //跨主机安全复制工具
    
    1.4 Secure Shell 示例
    //以当前用户身份创建远程交互式shell,然后在结束时使用exit命令返回到之前的shell
    
        [root@jxy ~]# ssh root@192.168.93.130
        root@192.168.93.130's password: 
        Last login: Mon Jul  1 10:22:25 2019
        [root@server ~]# exit
        登出
        Connection to 192.168.93.130 closed.
    
    //以远程用户身份(remoteuser)在远程主机(remotehost)上通过将输出返回到本地显示器的方式来执行单一命令
    
        [root@jxy ~]# ip a s eth0
        2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
            link/ether 00:0c:29:cb:3e:e9 brd ff:ff:ff:ff:ff:ff
            inet 192.168.93.129/24 brd 192.168.93.255 scope global eth0
               valid_lft forever preferred_lft forever
            inet6 fe80::20c:29ff:fecb:3ee9/64 scope link 
               valid_lft forever preferred_lft forever
    
    //w命令可以显示当前登录到计算机的用户列表。这对于显示哪些用户使用ssh从哪些远程位置进行了登录以及执行了何种操作等内容特别有用
    
        [root@jxy ~]# w
         10:28:56 up 4 min,  2 users,  load average: 0.04, 0.11, 0.05
        USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
        root     tty1                      10:24    4:00   0.02s  0.02s -bash
        root     pts/0    192.168.93.1     10:25    0.00s  0.05s  0.02s 
    
    

    1.5 SSH 主机密钥

    ssh通过公钥加密的方式保持通信安全。当某一ssh客户端连接到ssh服务器时,在该客户端登录之前,服务器会向其发送公钥副本。这可用于为通信渠道设置安全加密,并可验证客户端的服务器。
    
    当用户第一次使用ssh连接到特定服务器时,ssh命令可在用户的~/.ssh/known_hosts文件中存储该服务器的公钥。在此之后每当用户进行连接时,客户端都会通过对比~/.ssh/known_hosts文件中的服务器条目和服务器发送的公钥,确保从服务器获得相同的公钥。如果公钥不匹配,客户端会假定网络通信已遭劫持或服务器已被入侵,并且中断连接。
    
    这意味着,如果服务器的公钥发生更改(由于硬盘出现故障导致公钥丢失,或者出于某些正当理由替换公钥),用户则需要更新其~/.ssh/known_hosts文件并删除旧的条目才能够进行登录。
    
    //主机ID存储在本地客户端系统上的 ~/.ssh/known_hosts 中
    
        [root@jxy ~]# cat ~/.ssh/known_hosts
        192.168.93.130 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIrTWPGglP87LmTHoLynaACjDniZHovlx2mp0ufpnUP9H+G4zxTEeMt6Mblx4VepXg6pe9u4Myxj09atZ5lPZPg=
        192.168.93.129 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIrTWPGglP87LmTHoLynaACjDniZHovlx2mp0ufpnUP9H+G4zxTEeMt6Mblx4VepXg6pe9u4Myxj09atZ5lPZPg=
    
    //主机密钥存储在SSH服务器上的 /etc/ssh/ssh_host_key* 中
    
        [root@jxy ~]# ls /etc/ssh/*key*
        /etc/ssh/ssh_host_ecdsa_key      /etc/ssh/ssh_host_ed25519_key.pub
        /etc/ssh/ssh_host_ecdsa_key.pub  /etc/ssh/ssh_host_rsa_key
        /etc/ssh/ssh_host_ed25519_key    /etc/ssh/ssh_host_rsa_key.pub
    
    

    2. 配置基于 SSH 密钥的身份验证

    用户可通过使用公钥身份验证进行ssh登录身份验证。ssh允许用户使用私钥-公钥方案进行身份验证。这意味着将生成私钥和公钥这两个密钥。私钥文件用作身份验证凭据,像密码一样,必须妥善保管。公钥复制到用户希望登录的系统,用于验证私钥。公钥并不需要保密。
    使用ssh-keygen命令生成密码。将会生成私钥~/.ssh/id_rsa和公钥~/.ssh/id_rsa.pub。
    
    注意:
    
    生成密钥时,系统将提供指定密码的选项,在访问私钥时必须提供该密码。如果私钥被偷,除颁发者之外的其他任何人很难使用该私钥,因为已使用密码对其进行保护。这样,在攻击者破解并使用私钥前,会有足够的时间生成新的密钥对并删除所有涉及旧密钥的内容。
    
    生成ssh密钥后,密钥将默认存储在家目录下的.ssh/目录中。私钥和公钥的权限就分别为600和644。.ssh目录权限必须是700。
    
    在可以使用基于密钥的身份验证前,需要将公钥复制到目标系统上。可以使用ssh-copy-id完成这一操作
    
        [root@jxy ~]# ssh-copy-id root@192.168.93.130
        /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
        /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
        /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
        root@192.168.93.130's password: 
        
        Number of key(s) added: 1
        
        Now try logging into the machine, with:   "ssh 'root@192.168.93.130'"
        and check to make sure that only the key(s) you wanted were added.
        
        [root@jxy .ssh]# ssh root@192.168.93.130
        Last login: Mon Jul  1 10:27:10 2019 from 192.168.93.129
        [root@server ~]# ls .ssh/
        authorized_keys  known_hosts.gz
        [root@server ~]# cd .ssh/
        [root@server .ssh]# ls
        authorized_keys  known_hosts.gz
        [root@server .ssh]# ll
        总用量 8
        -rw-------. 1 root root 390 7月   1 11:22 authorized_keys
        -rw-r--r--. 1 root root 187 3月  30 22:38 known_hosts.gz
        
        通过ssh-copy-id将密钥复制到另一系统时,它默认复制~/.ssh/id_rsa.pub文件
        
        //SSH密钥演示
        //使用 ssh-keygen 创建公钥-私钥对
       
         [root@jxy ~]# 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): 
            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:
            SHA256:ZSUvsGzRvMMxtCoVYdaeAMiMSRp1tUoPFgQhtnxlyeE root@jxy
            The key's randomart image is:
            +---[RSA 2048]----+
            |o+=O=*=.B*o .    |
            |o++.B+ =.=*=     |
            |.o .+E. =+==.    |
            |  .o + o +*.     |
            |    . o S  .     |
            |       .         |
            |                 |
            |                 |
            |                 |
            +----[SHA256]-----+
            [root@jxy ~]# cd .ssh/
            [root@jxy .ssh]# ls
            id_rsa  id_rsa.pub  known_hosts  known_hosts.gz
    
    //使用 ssh-copy-id 将公钥复制到远程系统上的正确位置
    
        root@jxy .ssh]# ls
        id_rsa  id_rsa.pub  known_hosts  known_hosts.gz
        [root@jxy .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.93.130
        /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
        /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
        /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
        root@192.168.93.130's password: 
        
        Number of key(s) added: 1
        
        Now try logging into the machine, with:   "ssh 'root@192.168.93.130'"
        and check to make sure that only the key(s) you wanted were added.
        
        [root@jxy .ssh]# ssh root@192.168.93.130
        Last login: Mon Jul  1 11:38:23 2019 from 192.168.93.129
        [root@server ~]# cd .ssh/
        [root@server .ssh]# ll
        总用量 8
        -rw-------. 1 root root 390 7月   1 11:39 authorized_keys
        -rw-r--r--. 1 root root 187 3月  30 22:38 known_hosts.gz
    
    //使用 ssh 命令无命令登录远程主机
    
        [root@jxy ~]# ssh root@192.168.93.130
        Last login: Mon Jul  1 11:43:41 2019 from 192.168.93.129
        [root@server ~]# ip a s eth0
        2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
            link/ether 00:0c:29:0c:0c:44 brd ff:ff:ff:ff:ff:ff
            inet 192.168.93.130/24 brd 192.168.93.255 scope global eth0
               valid_lft forever preferred_lft forever
            inet6 fe80::20c:29ff:fe0c:c44/64 scope link 
               valid_lft forever preferred_lft forever
           
    //使用 scp 命令传送文件到远程主机
    
        [root@jxy ~]# scp 99.sh root@192.168.93.130:/tmp
        99.sh                                  100%  117    91.3KB/s   00:00    
        [root@jxy ~]# ssh root@192.168.93.130
        Last login: Mon Jul  1 11:43:48 2019 from 192.168.93.129
        [root@server ~]# cd /tmp
        [root@server tmp]# ls
        99.sh
    
    //使用 scp 命令从远程主机上下载文件到本地
    
        [root@jxy ~]# ls
        99.sh  1
        [root@jxy ~]# ls
        1
        [root@jxy ~]# scp root@192.168.93.130:/tmp/99.sh .
        99.sh  1                              100%  117    30.6KB/s   00:00   
        [root@jxy ~]# ls
        99.sh
    
    //scp命令常用选项
        -r      //递归复制
        -p      //保持权限
        -P      //端口
        -q      //静默模式
        -a      //全部复制
    

    3. 自定义 SSH 服务配置

    虽然OpenSSH服务器通常无需修改,但会提供其他安全措施,可以在配置文件/etc/ssh/sshd_config中修改OpenSSH服务器的各个方面。
    
    PermitRootLogin {yes|no}    //是否允许root用户远程登录系统
    PermitRootLogin without-password    //仅允许root用户基于密钥方式远程登录
    PasswordAuthentication {yes|no}     //是否启用密码身份验证,默认开启
    

    4. SSH 安全注意事项

    • 密码应该经常换且足够复杂
    
        [root@jxy ~]# tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 |xargs  //生成30位的密码
        euolfeV0fq8fekM7EjI0wU9bvnAfpa
    
        [root@jxy ~]# openssl rand 20 -base64
        bPciXlkg0BoJ+jYM+YArLY7KcY0=   //生成20位随机密码
    
    
    • 使用非默认端口
    • 限制登录客户端地址
    • 仅监听特定的IP地址
    • 禁止管理员直接登录
    • 仅允许有限制用户登录
    1. AllowUsers
    2. AllowGroups
    • 使用基于密钥的认证
    • 禁止使用空密码
    • 禁止使用SSHv1版本
    • 设定空闲会话超时时长
    • 利用防火墙设置ssh访问策略
    • 限制ssh的访问频度和并发在线数
    • 做好日志的备份,经常分析(集中于某台服务器)
    展开全文
  • OpenSSH for Windows

    2020-07-29 14:20:57
    OpenSSH for Windows, 内附两个cyg相关文件,如果安装后无法启动opensshd服务,请使用这两个文件覆盖安装目录\bin\下的对应文件。
  • OpenSSH的安装、使用

    2018-06-17 12:02:27
    因为SSH受版权和加密算法的限制,现在很多人都转而使用OpenSSHOpenSSH(Open Secure Shell,开放安全Shell)是SSH的替代软件,而且是免费的。OpenSSH默认使用RSA密钥,它采用安全、加密的网络连接工具代替telnet、...

    因为SSH受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH(Open Secure Shell,开放安全Shell)是SSH的替代软件,而且是免费的。OpenSSH默认使用RSA密钥,它采用安全、加密的网络连接工具代替telnet、ftp、rlogin、rsh和rcp工具。

    1、安装

    1.1 服务器端安装

    需要安装的软件:
    openssh-server:服务器端
    openssh:服务器端与客户端核心文件

    1.2 客户端安装

    需要安装的软件:
    openssh:服务器端与客户端核心文件
    openssh-clients : 客户端

    可通过如下命令找到上述软件:

    [root@localhost ~]# yum search openssh
    openssh.x86_64 : An open source implementation of SSH protocol versions 1 and 2
    openssh-clients.x86_64 : An open source SSH client applications
    openssh-server.x86_64 : An open source SSH server daemon

    然后采用如下命令安装相关软件:

    [root@localhost ~]# yum install openssh.x86_64

    注意:如果一台机器既要做客户端又要做服务器端,就需要在该系统中安装上述三个软件包;CentOS 7中默认已安装好上述三个软件包。

    2、使用

    2.1 远程登陆主机

    1、远程主机登陆(首次登陆)

    [hadoop@localhost ~]$ ssh 192.168.112.130
    The authenticity of host '192.168.112.130 (192.168.112.130)' can't be established.
    ECDSA key fingerprint is ff:7b:94:49:f5:2d:d3:59:23:c7:a8:cf:b0:d6:e4:b9.
    Are you sure you want to continue connecting (yes/no)? yes # 再次登陆不会有这个提示
    Warning: Permanently added '192.168.112.130' (ECDSA) to the list of known hosts.
    hadoop@192.168.112.130's password: 

    2、指定用户名登陆

    [hadoop@localhost home]$ ssh -l root 192.168.112.130
    root@192.168.112.130's password: 
    Last login: Sat Jun  9 15:18:44 2018 from 192.168.112.131

    2.2 远程拷贝

    1、本地文件拷贝到远程主机

    [root@localhost ~]# scp anaconda-ks.cfg root@192.168.112.131:/tmp
    root@192.168.112.131's password: 
    anaconda-ks.cfg                                         100% 1704     1.7KB/s   00:00

    2、远程主机文件拷贝到本地

    [root@localhost ~]# scp  root@192.168.112.130:/tmp/anaconda-ks.cfg  /root
    root@192.168.112.130's password: 
    anaconda-ks.cfg                   100% 1704     1.7KB/s   00:00 

    3、免密远程登陆及免密远程拷贝设置

    为什么设置免密登录及远程拷贝?

    • 方便操作,处理快速;
    • 计算机集群中机器之间有频繁的数据交换需求。

    设置方法:(假设A、B计算机要进行加密通信)

    • A计算机root用户的命令行输入ssh-keygen –t rsa,生成密钥对;
    • 若B计算机授权给A免密钥登录B,则将A计算机的公钥放入B计算机的authorized_keys文件中。

    通俗理解设置:将计算机的信任关系与人之间的信任关系作类比。张三若信任李四,则表示李四在张三的受信任名单的列表中(类比A计算机的公钥放到B计算机的authorized_keys文件中)。

    具体操作如下:

    A计算机中运行:
    [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): 
    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:【回车】
    SHA256:ZZX5VDHOPcyyXq74ogpPKDea2FThfQxqWaSL0g0QUZc root@localhost.localdomain
    The key's randomart image is:
    +---[RSA 2048]----+
    | ++. ...    .o +o|
    …
    |  . o . .   . o  |
    |   o = .     . . |
    |  + = =    .. .  |
    | . +   o....oo   |
    +----[SHA256]-----+
    
    [root@localhost ~]# cd ~/.ssh/
    [root@localhost .ssh]# cat id_rsa.pub >>authorized_keys
    [root@localhost .ssh]# chmod 600 authorized_keys
    [root@localhost .ssh]# scp authorized_keys root@192.168.112.131:/root/.ssh
    root@192.168.112.131's password: 
    authorized_keys            100%  408    23.2KB/s   00:00    
    [root@localhost .ssh]# ssh 192.168.112.131
    Last login: Fri Jun  8 21:56:46 2018
    
    展开全文
  • OpenSSH

    2019-07-03 10:20:19
    1.OpenSSH简介 OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、rcp ftp、 rlogin、rsh都是极为不...

    opssh

    1.OpenSSH简介

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

    。OpenSSH的工作模式

    openSSH 的工作模式
    openSSH是基于C/S架构工作的。

    服务器端    //sshd,配置文件在/etc/ssh/sshd_config
    客户端     //ssh,配置文件在/etc/ssh/ssh_config
        ssh-keygen      //密钥生成器
        ssh-copy-id     //将公钥传输至远程服务器
        scp             //跨主机安全复制工具
    

    2.openssh的使用

    。远程登录主机

    1. 第一次远程主机首次登录,使用exit退出返回之前的shell:
    // 不使用账号登录就是以当前主机的当前账号去连接

    [root@scl ~]# ssh 192.168.100.96
    root@192.168.100.96's password: 
    Last login: Thu Jun 27 08:57:20 2019 from 192.168.100.1
    [root@localhost ~]# exit
    登出
    Connection to 192.168.100.96 closed.
    [root@scl ~]# 
    
    

    2.指定用户名登录:

    [root@scl ~]# ssh tom@192.168.100.96
    tom@192.168.100.96's password: 
    Last failed login: Thu Jun 27 09:04:52 CST 2019 from 192.168.100.100 on ssh:notty
    There were 5 failed login attempts since the last successful login.
    [tom@localhost ~]$ exit
    登出
    Connection to 192.168.100.96 closed.
    [root@scl ~]# 
    

    3.以远程用户身份在远程主机上执行一条命令,不登录进去

    [root@scl ~]# ssh root@192.168.100.96 'ifconfig ens33'
    root@192.168.100.96's password: 
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.100.96  netmask 255.255.255.0  broadcast 192.168.100.255
            ether 00:0c:29:ad:5e:54  txqueuelen 1000  (Ethernet)
            RX packets 1283  bytes 129676 (126.6 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 945  bytes 101586 (99.2 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    [root@scl ~]# 
    
    

    3.SSH主机密钥

    ssh通过公钥加密的方式保持通信安全。当某一ssh客户端连接到ssh服务器时,在该客户端登录之前,服务器会向其发送公钥副本。这可用于为通信渠道设置安全加密,并可验证客户端的服务器。

    当用户第一次使用ssh连接到特定服务器时,ssh命令可在用户的~/.ssh/known_hosts文件中存储该服务器的公钥。在此之后每当用户进行连接时,客户端都会通过对比~/.ssh/known_hosts文件中的服务器条目和服务器发送的公钥,确保从服务器获得相同的公钥。如果公钥不匹配,客户端会假定网络通信已遭劫持或服务器已被入侵,并且中断连接。

    这意味着,如果服务器的公钥发生更改(由于硬盘出现故障导致公钥丢失,或者出于某些正当理由替换公钥),用户则需要更新其~/.ssh/known_hosts文件并删除旧的条目才能够进行登录。

    主机端:
    ~/.ssh/known_hosts      //存放服务器的公钥
    [root@scl ~]# cat ~/.ssh/known_hosts 
    192.168.100.96 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFtvQzKVagWukVUwPOghxDwsP4YC9DSHNCSlDkpfCpL0RNQ3kKmZD7vMPJDSrwWWOr8CJjy4MOCpGUyAyw8k04M=
    
    //主机密钥存储在SSH服务器上的 /etc/ssh/ssh_host_key* 中    //  .pub代表公钥
    [root@localhost ~]# ls /etc/ssh/*key*
    /etc/ssh/ssh_host_ecdsa_key      /etc/ssh/ssh_host_ed25519_key.pub
    /etc/ssh/ssh_host_ecdsa_key.pub  /etc/ssh/ssh_host_rsa_key
    /etc/ssh/ssh_host_ed25519_key    /etc/ssh/ssh_host_rsa_key.pub
    
    服务器端:
    [root@localhost ssh]# cat /etc/ssh/ssh_host_ecdsa_key.pub 
    ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFtvQzKVagWukVUwPOghxDwsP4YC9DSHNCSlDkpfCpL0RNQ3kKmZD7vMPJDSrwWWOr8CJjy4MOCpGUyAyw8k04M= 
    
    

    4.配置 SSH 密钥验证

    ssh-keygen命令生成密码。将会生成私钥~/.ssh/id_rsa和公钥~/.ssh/id_rsa.pub
    1.生成密钥对

    [root@scl ~]# ssh-keygen -t rsa          //  -t   指定rsa算法
    Bad escape character 'ygen'.
    [root@scl ~]# 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):                                         //  给密钥设置密码
    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:
    SHA256:ocnMTYDpPy4ylzMR1iiOrRqqDy3aZoSclHg1bDjLHJ4 root@scl
    The key's randomart image is:
    +---[RSA 2048]----+
    |   o o.          |
    |  + B  .         |
    |.+.O +  o        |
    |.oE =+.= .       |
    |o*.o o* S        |
    |o++ . o          |
    |+o.  + .         |
    |+== * .          |
    |B+o+ +           |
    +----[SHA256]-----+
    [root@scl ~]# 
    

    2.把公钥发送至想登录的主机上

    通过ssh-copy-id将密钥复制到另一系统时,它默认复制~/.ssh/id_rsa.pub文件
    如果你的公钥不是~/.ssh/id_rsa.pub则要使用-i指定,此时使用ssh连接时也要使用-i指定公钥

    [root@scl ~]# ls .ssh/
    id_rsa  id_rsa.pub  known_hosts
    
    [root@scl ~]# ssh-copy-id root@192.168.100.96
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@192.168.100.96's password: 
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@192.168.100.96'"
    and check to make sure that only the key(s) you wanted were added.
    
    //将主机端的公钥 ~/.ssh/id_rsa.pub 复制一份到服务器端生成一个文件authorized_keys,并且这个文件的权限必须是600
    
    [root@localhost ~]# ls .ssh/
    authorized_keys  known_hosts
    
    

    3.验证

    注意事项:
    // 所有公钥的权限必须是644
    // 所有私钥的权限必须是600
    // authorized_keys文件的权限必须是600
    // .ssh这个目录的权限必须是700

    [root@scl .ssh]# ssh root@192.168.100.96                     //此时再次连接对方主机不用输入密码
    Last login: Thu Jun 27 14:07:36 2019 from 192.168.100.1
    [root@localhost ~]# 
    
    

    scp命令

    //使用scp命令可以复制本机的公钥至对方主机:
    [root@scl ~]# scp ./.ssh/id_rsa.pub root@192.168.100.96:/root/.ssh/authorized_keys
    
    //使用scp从对方主机下载文件至本主机:
    [root@scl ~]# ls
    anaconda-ks.cfg 
    
    [root@scl ~]# rm -f anaconda-ks.cfg 
    [root@scl ~]# 
    
    [root@scl ~]# scp root@192.168.100.96:/root/anaconda-ks.cfg .
    anaconda-ks.cfg                                                                          100% 1257    25.3KB/s   00:00    
    [root@scl ~]# ls
    anaconda-ks.cfg 
    

    5.SSH 安全注意事项

    SSH的配置文件在/etc/ssh/sshd_config

    PermitRootLogin {yes|no}    //是否允许root用户远程登录系统
    PermitRootLogin without-password    //仅允许root用户基于密钥方式远程登录
    PasswordAuthentication {yes|no}     //是否启用密码身份验证,默认开启
    

    尽量使用以下配置:

    • 使用非默认端口
    • 限制登录客户端地址
    • 仅监听特定的IP地址
    • 禁止管理员直接登录
    • 仅允许有限制用户登录
      AllowUsers
      AllowGroups
    • 使用基于密钥的认证
    • 禁止使用空密码
    • 禁止使用SSHv1版本
    • 设定空闲会话超时时长
    • 利用防火墙设置ssh访问策略
    • 限制ssh的访问频度和并发在线数
    • 做好日志的备份,经常分析(集中于某台服务器)
    展开全文
  • openssh远程链接

    2018-04-11 13:11:53
    ##### 1.openssh ####为了方便实验我们先打开两个虚拟机并用颜色区分当主机中开启openssh服务,那么就对外开放了远程连接的接口#openssh服务的服务端sshd#openssh服务的客户端ssh#### 2.在客户端连接sshd的方式 ####...

    ##### 1.openssh ####

    为了方便实验我们先打开两个虚拟机并用颜色区分


    当主机中开启openssh服务,那么就对外开放了远程连接的接口
    #openssh服务的服务端

    sshd

    #openssh服务的客户端

    ssh




    #### 2.在客户端连接sshd的方式 ####
    ssh   服务端用户@服务端ip地址

    例如
    ssh   root@172.25.0.10    ##在客户端用ssh命令连接172.25.0.10主机的root用户

    [root@localhost ~]# ssh root@172.25.254.200
    The authenticity of host '172.25.254.200 (172.25.254.200)' can't be established.
    ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2inactived:bc:b0:08.
    Are you sure you want to continue connecting (yes/no)?     ##当当前主机第一次连接陌生主机时
                                ##会自动建立.ssh/know_hosts
                                ##这个文中记录的是连接过的主机信息
                                #
    root@172.25.254.200  password:             #输入密码连接成功
    Last login: Fri Mar 30 02:05:52 2018 from 172.25.254.100
    [root@localhost ~]# exit                #表示退出当前连接
    logout

    Connection to 172.25.254.200 closed.


    "注意:以上连接方式是不能打开远程主机的图形功能的如果需要打开远程主机图形功能需要输入 -X"

    ssh -X root@172.25.254.101

    cheese


    #### 3.给ssh服务添加新的认证方式 KEY认证####

    1.生成锁和钥匙
    [root@localhost ~]# ssh-keygen         ##生成密钥的命令
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):    #保存加密字符的文件用默认
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase):         #可以为空,如果想为空必须大于4位
    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:
    00:4f:b0:72:40:9f:a6:fb:91:86:d2:69:bc:7c:75:5f root@localhost
    The key's randomart image is:
    +--[ RSA 2048]----+
    | .o o..          |
    |   o *           |
    |  . * o          |
    |   =   .         |
    |  .     S        |
    | o + .. .   E    |
    |. B +. . . .     |
    | + +..    .      |
    |  o..            |

    +-----------------+

    为了方便实验我的密码为“空”


    2.加密ssh用户的认证
    #在服务端
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.101
    ssh-copy-id        ##加密命令
    -i            ##指定密钥
    /root/.ssh/id_rsa.pub    ##密钥
    root            ##加密用户

    172.25.254.101        ##主机ip



    3.验证
    #解密文件传输到客户端

    scp /root/.ssh/id_rsa  root@172.25.254.100:/root/.ssh/



    #在客户端

    ssh root@172.25.254.100        #连接不需要密码



    #在服务端

    rm -fr /root/.ssh/authorized_keys    ##当此文件被删除,客户端解密文件失效



    #在服务端

    cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys    ##从新生成锁文件,解密文件功能恢复


    #### 4.sshd的安全配置 ####
    1.禁止原始认证方式

    78 PasswordAuthentication no|yes    ##开启或关闭ssh的默认认证方式


    48 PermitRootLogin no|yes        ##开启或关闭root用户的登陆权限


    79 AllowUsers westos            ##用户白名单,当前设定是只允许westos登陆

    80 DenyUsers linux            ##用户黑名单,当前设定是只不允许linux登陆

    更改完成后输入:

    #### 5.linux中服务的管理 #####

    systemctl    动作    服务

    systemctl start        sshd        #开启服务
    systemctl stop        sshd        #停止服务
    systemctl status    sshd        #查看服务状态
    systemctl restart    sshd        #重启服务
    systemctl reload    sshd        #让服务从新加载配置
    systemctl enable    sshd        #设定服务开启启动
    systemctl disable    sshd        #设定服务开机不启动

    systemctl list-unit-files        #查看系统中所有服务的开机启动状态
    systemctl list-units            #查看系统中所有开启的服务
    systemctl set-default graphical.target    #开机时开启图形

    systemctl set-default multi-user.targe    #开机时不开图形


    展开全文
  • openssh远程系统登录

    2018-10-14 21:36:10
    1.openssh 当主机中开启openssh服务时,那么就对外开放了远程连接的接口 openssh服务的服务端: sshd openssh服务的客户端: ssh 2.在客户端连接sshd(服务端)的方式 格式:ssh 服务端用户@...
  • OPENSSH【源码分析】

    2020-08-04 18:46:03
    【有空画图】 SSH客户端核服务端Daemon SSH客户端:先参数的配置,然后ssh_login进入登录过程。ssh_login中会通过ssh_kex2来完成key exchange。ssh_kex2包括kex_setup来初步设置(包括向服务端发送SSH2_MSG_...
  • 升级openssh到最新版本

    2018-08-20 16:35:27
    为了系统的安全加固,一般都会将openssh服务升级到最新版本,其中包括ssh、scp、sftp等服务。  笔者在升级的时候遇到了好多坑,现做一下整理。网上有好多关于升级openssh服务的介绍,大都不是很全,或多或少有问题...
  • 压缩包已包括升级openssh所需的源码包以及详细操作文档,此文档基于作者物理环境升级经验,通用于RedHat5.X-6.X版本的openssh及openssl升级,根据该文档可在生产环境中直接升级,不影响业务。 文档以升级至openssh...
  • 上传这个是为了更新OpenSSH 7.5.p1 最新版本。为了就是漏洞扫描工具报错,修复此问题。参考了网络上其他人员的操作总结了下。 查看当前openssh版本 ssh -V 卸载原有openssh yum remove openssh -y 安装 gcc、...
  • openssh-7.4p1.tar.gz

    2020-07-30 23:32:00
    OpenSSH是SSH协议远程登录的首选连接工具。它加密所有流量以消除窃听,连接劫持和其他攻击。另外,OpenSSH提供了一套安全的隧道功能,多种认证方法和复杂的配置选项。 OpenSSH套件包含以下工具: 远程操作使用...
  • [centos6]openssh-8.3p1

    2020-07-28 23:30:17
    安全加固openssh8.3p1最新编译完成的RPM安装包20200609 openssh-8.3p1-1.el6.x86_64.rpm openssh-askpass-8.3p1-1.el6.x86_64.rpm openssh-askpass-gnome-8.3p1-1.el6.x86_64.rpm openssh-clients-8.3p1-1.el6.x86_...
  • openssh-7.7p1.tar.gz

    2020-07-30 23:32:00
    OpenSSH是SSH协议远程登录的首选连接工具。它加密所有流量以消除窃听,连接劫持和其他攻击。另外,OpenSSH提供了一套安全的隧道功能,多种认证方法和复杂的配置选项。 OpenSSH套件包含以下工具: 远程操作使用...
  • 此资源为openssh 7.2的离线安装包,包含有详细的安装步骤,超级好用。 安装的详细步骤命令如下: sudo dpkg -i openssh-client_7.2p2-4_amd64.deb sudo dpkg -i openssh-sftp-server_7.2p2-4_amd64.deb sudo dpkg...
  • ubuntu 16.04 离线安装openssh 执行 sudo dpkg -i openssh-client_7.2p2-4_amd64.deb sudo dpkg -i openssh-sftp-server_7.2p2-4_amd64.deb sudo dpkg -i libwrap0_7.6.q-25_amd64.deb sudo dpkg -i openssh-...
  • openssh8.1p1编译离线安装包及所以的需要的依赖rpm包,由于绿盟扫到openssh8.1以下版本都存在输入安全漏洞。OpenSSH 输入验证错误漏洞(CVE-2019-16905) OpenSSH(OpenBSD Secure Shell)是 OpenBSD 计划组的一套...
  • 很好用的openssh-8.1p1.tar和openssl-1.1.1d.tar,官方纯净版本,亲可以使用;很好用的openssh-8.1p1.tar和openssl-1.1.1d.tar,官方纯净版本,亲可以使用;很好用的openssh-8.1p1.tar和openssl-1.1.1d.tar,官方...
  • OpenSSH
  • OpenSSL、OpenSSH一般官方每年会更新两次,修复已知安全漏洞和各种程序Bug。随着越来越多的企业对安全意识的提高,一般每年也会内部开展两次安全整改检查工作,其中OpenSSL、OpenSSH漏洞是企业安全扫描系统中最常见...
  • 不过很多Linux服务器配置了OpenSSH服务,在获取root权限的情况下,可以通过修改或者更新OpenSSH代码等方法,截取... 很多入侵者在攻破一个Linux系统后,都会在系统中留下后门,用OpenSSH留后门是入侵者的惯用方式之...
1 2 3 4 5 ... 20
收藏数 57,798
精华内容 23,119
关键字:

openssh