linux-ssh服务器

ssh服务器搭建

1.基础简介

  • 将真实机与虚拟机进行连接
    • 连接方式:NAT,桥接,LAN网段连接…
    • 在真实机安装了VMware或,就会产生虚拟网卡:vmnet1,vmnet8
  • 虚拟机的网络设置
    • 网卡的表示方式:ens33
    • 查看ip地址:ifconfig
    • 相关命令:ifup ens33 ifdown ens33
    • 地址从哪里来的? 通过DHCP获取的?
  • 如果虚拟机要获取真实网络的地址?
    • 桥接模式获取

2.服务器搭建,密码验证登录方式

  1. 查看ssh服务是否启动:systemctl status sshd

    查看服务状态:systemctl status sshd
    开启服务:systemctl start sshd
    重启服务:systemctl restart sshd
    
  2. 修改配置文件:修改前先备份

    # vim /etc/ssh/sshd_config
    
    LoginGraceTime 2m	:登录验证时间
    permitRootLogin no  :禁止root用户登录
    MaxAuthTries 3		:最大重试次数
    MaxSessions 10		:最大连接数
    PermitEmptyPaswords no :禁止空密码用户登录
    ......
    
    # systemctl restart sshd 	:重启服务
    
  3. ssh登录方式:

    ssh 192.168.88.130
    ssh 用户名@192.168.88.130
    例:ssh stu1@192.168.88.130
    
  4. 限制用户登录:

    • 如果只允许或禁止某些用户登录时,可以使用AllowUsers或DenyUsers配置,两者用法类似(不能同时使用)

    • 例:只允许stu1和stu2用户登录,其中stu2用户仅能从IP地址为 192.168.10.100的主机远程登录

      # vim /etc/ssh/sshd_config
      添加:
      AllowUsers stu1 stu2@192.168.10.100		:多个用户用空格隔开
      
      # systemctl restart sshd 	:重启服务
      

3. 密钥对验证方式

  • 要求提供相匹配的密钥信息才能通过验证。通常先在客户中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大增强了远程管理的安全性。公钥(Public Key)与私钥(Privtae Key)的关系如下:

    • 公钥与私钥是成对生成,这两个密钥互不相同,可以互相加密与解密。

      不能根据一个密钥来推算出另一个密钥。

      公钥对外公开,私钥只有私钥的持有人才知道。

      公钥与私钥要配对使用,如果用公钥对数据进行加密,只有用相对就的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。

      当密码验证与密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用, 只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可启用。

      其中,公钥库文件用来保存各客户机上传的公钥文本,以便与客户机本地的私钥文件进行匹配。

  1. 开启密钥对验证方式:

    # vim /etc/ssh/sshd_config
    修改:
    PasswordAuthentication yes		:启用密码验证
    PubkeyAuthentication yes		:启用密钥对验证方式
    AuthorizedKeysFile     .ssh/authorized_keys   //指定公钥库数据文件
    
    # systemctl restart sshd :重启服务
    

    例:

    以student用户远程登录到主机192.168.75.158
    [root@localhost ~]# ssh student@192.168.75.158
    Are you sure you want to continue connecting (yes/no)? yes  //接受密钥
    student@192.168.75.158's password:    //输入密码
    当用户第一次登录SSH服务器时,必须接受服务器发来的RSA密钥(根据提示输入“yes”)后才能继续验证。接收的密钥信息将保存到~/.ssh/known_hosts文件中。密码验证成功以后,就登录到目标服务器的命令行环境中了,就好像把客户机的显示器、键盘连接到服务器一样。
    如果sshd服务器使用了非默认的端口号(如2345),则在登录时必须通过“-p”选项指定端口号。
    举例:以student用户远程登录到主机192.168.75.158的2345端口
    [root@localhost ~]#ssh -p 2345 student@192.168.75.158
    
  2. 构建密钥对验证ssh:

    • 在客户端创建密钥对那个用户登录,密钥对就默认生成在那个用户的目录下

      student@localhost log]$ ssh-keygen -t rsa
      Generating public/private rsa key pair.
      Enter file in which to save the key (/home/student/.ssh/id_rsa):  //指定私钥位置
      Enter passphrase (empty for no passphrase):  //设置私钥短语     
      Enter same passphrase again:      //确认所设置的短语
      
    • 修改公钥的名称:

      # cd /home/student/.ssh
      # vim id_rsa.put authorized_keys
      # ll	:查看authorized_keys权限是否为644(rw-r--r--)
      
    • 修改为密钥对验证:

      PasswordAuthentication yes    密码验证
      PubkeyAuthentication yes       密钥对验证
      AuthorizedKeysFile      .ssh/authorized_keys
      
    • linux客户端使用密钥对验证登录:

      [student@localhost ~]$ssh stu1@192.168.75.158
      
    • 也可以把密钥下载到windows,用xshell登录验证:
      在这里插入图片描述

4.putty生成密钥验证

  • 在windows系统中使用putty实现密钥对登录服务器
  1. 首先要用PuTTYgen 生成密钥对

  2. 点击Save private key按钮,选择一个存放文件的路径并定义名称,点击“保存”。

  3. 复制公钥到Linux服务器

    [root@aminglinux ~]# mkdir /root/.ssh   //创建目录
    [root@aminglinux ~]# chmod 700 /root/.ssh   //更改这个目录的权限
    [root@aminglinux ~]# vim /root/.ssh/authorized_keys  //把公钥内容粘贴到这个文件里并保存。
    
  4. 关闭selinux

    [root@aminglinux ~]# setenforce 0  //暂时关闭SELinux,下次重启还会再开启。
    查看selinux安全机制:getenforce   Enforcing(1)保护  Permissive(0)关闭
    
  5. 设置putty通过密钥登录
    详情请转到这个页面查看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值