zoukankan      html  css  js  c++  java
  • Linux学习

    参考资料

    Blog SSH config file for OpenSSH client
    Blog sshd_config - How to configure the OpenSSH server
    Blog SSH 密钥登录

    Server配置文件(sshd_config)

    一般只是配置:

    1. 修改并增加端口(Port)
    2. 禁用密码登录,改用密钥

    SSH 密钥登录

    生成密钥

    $ ssh-keygen -t rsa -b 4096 -f keyname -N password -C "your_email@domain.com"
    
    • -t:参数用于指定生成密钥的加密算法,一般为dsa或rsa。
    • -b:参数指定密钥的二进制位数。这个参数值越大,密钥就越不容易破解,但是加密解密的计算开销也会加大。
    • -f:参数指定生成的私钥文件的名称,可指定绝对路径。
    • -N:参数用于指定私钥的密码(passphrase)。
    • -C:参数可以为密钥文件指定新的注释,格式为username@host。

    手动上传公钥

    OpenSSH 规定,用户公钥保存在服务器的/.ssh/authorized_keys(authorized_keys已经是文件名,并不是文件夹)文件。你要以哪个用户的身份登录到服务器,密钥就必须保存在该用户主目录的/.ssh/authorized_keys文件。只要把公钥添加到这个文件之中,就相当于公钥上传到服务器了。每个公钥占据一行。如果该文件不存在,可以手动创建。

    关闭密码登录

    修改 sshd_config 文件

    $ nano /etc/ssh/sshd_config
    
    
    
    
    # 如果要完全禁用基于密码的身份验证,请将 PasswordAuthentication 和 ChallengeResponseAuthentication 都设置为 no
    PasswordAuthentication no
    #PermitEmptyPasswords no
    
    # Change to yes to enable challenge-response passwords (beware issues with
    # some PAM modules and threads)
    ChallengeResponseAuthentication no
    
    # 修改完成后按 Ctrl+X ,接着 Y,最后按回车
    

    查看 ssh 状态

    $ systemctl restart ssh
    $ systemctl status ssh
    

    禁止或允许某些用户或某IP(段)的客户端访问

    Blog:Linux限制某些用户或IP登录SSH、允许特定IP登录SSH

    限制用户SSH登录

    只允许指定用户进行登录(白名单):

    在/etc/ssh/sshd_config配置文件中设置AllowUsers选项,(配置完成需要重启 SSHD 服务)格式如下:

    AllowUsers    aliyun test@192.168.1.1            
    # 允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统。
    

    只拒绝指定用户进行登录(黑名单):

    在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:

    DenyUsers    zhangsan aliyun    #Linux系统账户        
    # 拒绝 zhangsan、aliyun 帐户通过 SSH 登录系统
    

    重启SSH

    service sshd restart
    

    限制IP SSH登录

    配置 iptables(重点难点)

    配置 hosts

    说明:这里的IP是指客户端IP,不是服务器IP,下面的例子使用了hosts.allow文件的配置方式,目的是快,但也有不灵活的,建议改成iptables的方案。

    除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置/etc/hosts.allow和/etc/hosts.deny这个两个文件,hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器,方法比较简单,且设置后立即生效,不需要重启SSHD服务,具体如下:

    /etc/hosts.allow添加

    sshd:192.168.0.1:allow  #允许 192.168.0.1 这个IP地址SSH登录
    sshd:192.168.0.:allow #允许192.168.0.1/24这段IP地址的用户登录,多个网段可以以逗号隔开,比如192.168.0.,192.168.1.:allow
    

    /etc/hosts.allow添加

    sshd:ALL #允许全部的ssh登录 
    hosts.allow和hosts.deny两个文件同时设置规则的时候,hosts.allow文件中的规则优先级高,按照此方法设置后服务器只允许192.168.0.1这个IP地址的SSH登录,其它的IP都会拒绝。
    

    /etc/hosts.deny添加

    sshd:ALL #拒绝全部IP
    

    针对hosts.deny的参考:http://www.cnblogs.com/EasonJim/p/8338931.html

    扩展应用

    保护 SSH

    SSH 端口转发(SSH隧道)

    Blog:SSH 端口转发
    视频:SSH 隧道技术
    视频:SSH 动态隧道 Windows和Linux应用
    视频:SSH 动态隧道配合ProxyChains
    视频:用SShuttle建立最好用的SSH动态隧道

    本地转发(Local port forwarding)

    SSH隧道-正向本地转发

    远程转发(Remote port forwarding)

    SSH隧道-反向远程转发

    动态转发

    SSH隧道-动态转发

    SSH 证书登录

  • 相关阅读:
    1451. Rearrange Words in a Sentence
    1450. Number of Students Doing Homework at a Given Time
    1452. People Whose List of Favorite Companies Is Not a Subset of Another List
    1447. Simplified Fractions
    1446. Consecutive Characters
    1448. Count Good Nodes in Binary Tree
    709. To Lower Case
    211. Add and Search Word
    918. Maximum Sum Circular Subarray
    lua 时间戳和时间互转
  • 原文地址:https://www.cnblogs.com/zxaben/p/14860247.html
Copyright © 2011-2022 走看看