Linux自学笔记——openssh

简介:

ssh:Secure  SHell

      C/S:22/tcp,安全地址登录

           Server:OpenSSH(sshd)

           Client:OpenSSH(ssh,scp),

                 Windows工具 :xshell,putty,securecrt ,sshsecure shell client

sshprotocol version

      V1:不安全;

      V2

主机认证:需要用到主机认证密钥;由服务器维护和提供;

用户登录:

      用户认证:

           基于口令认证;

           基于密钥认证:用户提供一对儿密钥,私钥保留在客户端,公钥保留于远程服务器端的用户家目录下;

OpenSSH

      sshd:配置文件 /etc/ssh/sshd_config

      844a3e40ad1e9c5d4022e41ae4cbb7d4.png-wh_

      ssh:配置文件 /etc/ssh/ssh_config

      1f597ff2f73ed8c10e9bdeda66fa434e.png-wh_

      客户端程序:

           ssh [options] [user@]host  [COMMAND]

           ssh [-l  user] [options] host  [COMMAND]

          

省略用户名:

   使用本地用户名作为远程登录的用户名;

常用选项:

   -l  user:以指定的用户登录远程主机;

   -p port:用于指明远程服务器的端口;

   -X:支持X11转发;

         X:协议;x-Windows,C/S

         X11转发的作用:在本地显示远程主机上的图形窗口;

              前提:本地是X图形界面,或者提供了x service;

   -o StrictHostKeyChecking=no

接收的所有认可的服务器列表:

   ~/.ssh/known_hosts

   31eb5219719e6cb23c971baf983c8693.png-wh_

ssh远程连接服务器时的配置选项,定义在/etc/ssh/ssh_config配置文件中;

   HOST pattern

         OPTION1 VALUE

         OPTION2 VALUE

         …

ssh支持的用户认证方式:

   基于口令认证;

   基于密钥认证:

1)    在本地主机生成一对密钥;

ssh-keygen  [-q] [-b bits]  [-t type] [-foutput_key_file]  [-P passphrase]

  -t {rsa|ecdsa|dsa}:公钥加密算法类型;

  -b bits:指明密钥长度;

  -P passphrase:私钥加密密码;

  -f output_keyfile:生成密钥的保存位置;

6a7a14e0436002bd278146bb089f04c7.png-wh_

2)    在本地主机上,将公钥复制到要登录的远程主机的某用户的家目录下的特定文件中(~/.ssh/authorized_keys)

6e037b32e30141f5b78b9f8f26515209.png-wh_

查看claude家目录的文件

4bd0cda7557eac8d7a8a581d98594f30.png-wh_

3)    测试

scp命令:基于ssh连接完成复制

         scp[options] SRC…  DEST/

         scp[option]    SRC   DEST

         存在两种使用情形:

              PULL:scp [options]  [user@]host:PATH/TO/SOMEFILE     /PATH/TO/SOMEFILE

              4126213a7c2d859234445b8d1c05f595.png-wh_

              PUSH:  scp [options]  /PATH/TO/SOMEFILE   [user@]host:/PATH/TO/SOMEFILE

              b2941080ebfd2b55fdac4dc8bdf9d501.png-wh_

              常用选项:

                    -r:递归复制;

                    -p:保持原文件的权限信息;

                    -q:静默模式;

                    -PPORT:指明远程主机ssh协议监听的端口;

sftp命令:

         ftp:file transferprotocol,明文;

         安全的文件传输机制;

              ftps:ftp over ssl

              sftp:ftp over ssh

         sftp

              C/S架构

S:由sshd服务进程管理,是sshd的一个子系统,在centos系统上的openssh上,默认为启动状态:/usr/libexec/openssh/sftp-server

  C:即sftp;

 

连接至远程主机:sftp  user@host

      Sftp>help

                 a1aedc7e36a23ecc55f6dcd94d6e3633.png-wh_

      sshd(服务端)

           配置文件:/etc/ssh/sshd_config(以下为部分配置文件)

           af4cfbc77e0f6dd4c31469006746ed78.png-wh_

                 格式:配置指令   值

                       常用指令:

                            Port     22

                            ListenAddress 0.0.0.0

                            Protocol    2

                            PermitRootLogin  yes

                            UseDNS   no

                 手册页:

                      man     sshd_config

                      man     sshd

                     

                      man ssh_config

                      man ssh

                 限制可登录的用户(配置文件):

                      AllowUsers  user1 user2  user3 …

                      AllowGroups   grp1 grp2 …

 

                      DenyUsers  user1 user2 …

                      DenyGroups  grp1 grp2 …

           Centos6:

                 服务脚本:/etc/rc.d/init.d/sshd

           Centos7:

                 System unitfile:/usr/lib/system/system/sshd.servcie

      Ssh服务的最佳实践:

1.     不要使用默认端口;

2.     禁止使用protocol version 1;

3.     限制可登录用户;

4.     设定空闲会话超时时长;

5.     利用防火墙设置ssh访问策略;

6.     仅监听特定的ip地址;

7.     基于口令认证时,使用强密码策略;

#tr –dc  A-Za-z0-9_ <  /dev/urandom  | head –c 30  | xargs

8.     使用基于密钥的认证;

9.     禁止使用空密码;

10.禁止root用户直接登录;

11.限制ssh的访问频度和并发在线数;

12.做好日志,经常分析;

Ssh协议的另一个实现;dropbear

      轻量化的实现方案,多用于嵌入式环境中;

      常用工具:

           dbclient :ssh协议客户端程序

dbclient [options]  [user@]host[/port][,[user@]host/port],…][command]

           dropbearkey:主机密钥生成工具

                 dropbearkey –t <type>-f<filename> [-s bits]

                      /etc/dropbear/

      服务端程序:

           dropbear

                 -p [IP:]PORT

                 -F:前台;

                 -E:将日志发往错误输出;




本文转自 claude_liu 51CTO博客,原文链接:http://blog.51cto.com/claude666/1975682,如需转载请自行联系原作者

相关文章
|
安全 Linux 编译器
BigCloud Enterprise Linux 8和Rocky Linux 8升级OpenSSH步骤
本文介绍了在BigCloud Enterprise Linux 8.2/8.6和Rocky Linux 8.10上升级OpenSSH的详细步骤。首先配置Telnet服务和GCC编译器以确保远程登录安全,接着备份旧版OpenSSH并下载、编译、安装最新版本(如9.9p1)。然后创建新的sshd系统服务配置文件,调整配置并启动服务。最后验证升级效果,关闭不必要的Telnet服务,并处理可能的防火墙和SELinux问题。通过这些步骤可有效修复低版本OpenSSH带来的高危漏洞。
885 13
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
1060 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
Linux源码阅读笔记10-进程NICE案例分析2
Linux源码阅读笔记10-进程NICE案例分析2
Linux源码阅读笔记09-进程NICE案例分析1
Linux源码阅读笔记09-进程NICE案例分析1
|
12月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
1137 2
linux笔记 diff及patch的制作与使用
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
806 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
Linux 开发者
Linux源码阅读笔记18-插入模型及删除模块操作
Linux源码阅读笔记18-插入模型及删除模块操作