• linux之ssh命令


     ssh命令用于远程登录上Linux主机。

    常用格式:ssh [-l login_name] [-p port] [user@]hostname
    更详细的可以用ssh -h查看。

    不指定用户:

    ssh 192.168.0.11

    指定用户:

    ssh -l root 192.168.0.11

    ssh root@192.168.0.11


    如果修改过ssh登录端口的可以:

    ssh -p 12333 192.168.0.11

    ssh -l root -p 12333 216.230.230.114

    ssh -p 12333 root@216.230.230.114

    另外修改配置文件/etc/ssh/sshd_config,可以改ssh登录端口和禁止root登录。改端口可以防止被端口扫描。

    编辑配置文件:

    vim /etc/ssh/sshd_config

    找到#Port 22,去掉注释,修改成一个五位的端口:

    Port 12333

    找到#PermitRootLogin yes,去掉注释,修改为:

    PermitRootLogin no

    重启sshd服务:

    service sshd restart

    默认配置文件和SSH端口

    /etc/ssh/sshd_config:OpenSSH服务器配置文件;

    /etc/ssh/ssh_config:OpenSSH客户端配置文件;

    ~/.ssh/:用户SSH配置目录;

    ~/.ssh/authorized_keys:用户公钥(RSA或DSA);

    /etc/nologin:如果存在这个文件,sshd会拒绝除root用户外的其它用户登录;

    /etc/hosts.allow和/etc/hosts.deny:定义tcp-wrapper执行的访问控制列表;

    SSH默认端口:22  

    1、禁用OpenSSH服务器

    工作站和笔记本电脑可以不用OpenSSH服务器,如果你不需要提供SSH远程登录和文件传输功能,可以禁用并删除SSHD服务器,CentOS / RHEL / Fedora Linux用户可以使用下面的yum命令禁用和删除openssh-server:

    # chkconfig sshd off

    # yum erase openssh-server

    Debian / Ubuntu Linux用户可以使用下面的apt-get命令禁用和删除openssh-server: 

    # apt-get remove openssh-server

    你可能需要更新你的iptables脚本,移除ssh例外规则,在CentOS / RHEL / Fedora下,打开etc/sysconfig/iptables和/etc/sysconfig/ip6tables文件,删掉与ssh相关的例外规则,然后使用下面的命令重启iptables:

    # service iptables restart

    # service ip6tables restart

    2、只使用SSH v2

    打开sshd_config配置文件,如果没有就增加下面这一行设置:Protocol 2

    3、限制用户的SSH访问

    假设我们只要root,vivek和jerry用户能通过SSH使用系统,向sshd_config配置文件中添加:AllowUsers root vivek jerry

    另外,你还可以允许所有用户通过SSH登录,但拒绝一部分用户,这时就需要向sshd_config配置文件中添加:DenyUsers saroj anjali foo

    4、配置空闲超时退出时间间隔

    sshd_config配置文件,确保有如下的配置项:

    ClientAliveInterval 300

    ClientAliveCountMax 0

    上面的例子设置的空闲超时时间间隔是300秒,即5分钟,过了这个时间后,空闲用户将被自动踢出出去(可以理解为退出登录/注销)。

    5、禁用.rhosts文件

    不要读取用户的~/.rhosts和~/.shosts文件,使用下面的设置更新sshd_config配置文件:

    IgnoreRhosts yes

    6、禁用基于主机的身份验证

    HostbasedAuthentication no

    7、禁用root通过SSH登录

    PermitRootLogin no

    8、启用警告横幅

    Banner /etc/issue

    8、防火墙SSH端口:22

    更新/etc/sysconfig/iptables(Red Hat及基于Red Hat的系统)文件,只接受来自192.168.1.0/24和202.54.1.5/29的连接,配置如下:

    -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT

    -A RH-Firewall-1-INPUT -s 202.54.1.5/29 -m state --state NEW -p tcp --dport 22 -

    9、使用TCP Wrapper

    TCP Wrapper是一个基于主机的网络ACL系统,用于过滤到互联网的网络访问,OpenSSH支持TCP Wrapper,只需要更新你的/etc/hosts.allow文件,下面的例子表示仅允许来自192.168.1.2 和172.16.23.12的ssh访问:

    192.168.1.2 172.16.23.12

    关于如何在Linux / Mac OS X 和UNIX类操作系统上安装和配置TCP Wrapper,请访问http://www.cyberciti.biz/faq/tcp-wrappers-hosts-allow-deny-tutorial/

    10、禁用空密码

    你需要明确禁止密码为空的用户远程登录,使用下面的设置更新sshd_config配置文件:

    PermitEmptyPasswords no

    11、使用日志分析器

    使用logwatch或logcheck读取你的日志,这些工具让你更容易阅读日志内容,它们可以遍历给定时间范围内的日志,并生成明了的报告,请确保sshd_config配置文件中将LogLevel设置为INFO或DEBUG了。

    LogLevel INFO

    Other

    #  开启特权隔离

    UsePrivilegeSeparation yes

    # 防止使用不安全的home目录和密钥权限

    StrictModes yes

    # 开启反向名称检查

    VerifyReverseMapping yes

    # 设置是否需要端口转发

    AllowTcpForwarding no

    X11Forwarding no

    #  指定是否允许密码验证,默认是yes

    PasswordAuthentication no

    最后警告大家,在重启或重新载入修改之前,先使用下面的命令验证一下sshd_config配置文件是否无误:

    # /usr/sbin/sshd -t
  • 相关阅读:
    JBPM使用
    eclipse spring3.X redis 整合-配置
    30分钟学会如何使用Shiro
    Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
    Eclipse上Maven环境配置使用 (全)
    redis未设置idle超时时间导致连接过多
    linux下搭建redis并解决无法连接redis的问题
    redis配置用户认证密码
    spring配置redis
    Linux nohup和&后台运行,进程查看及终止,进程信息输出,控制台信息输出
  • 原文地址:https://www.cnblogs.com/kex1n/p/5223974.html
Copyright © 2020-2023  润新知