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,如需转载请自行联系原作者

相关文章
|
3天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
3月前
|
安全 Linux Shell
【Linux】文件服务OpenSSH(Secure Shell)
【Linux】文件服务OpenSSH(Secure Shell)
26 0
【Linux】文件服务OpenSSH(Secure Shell)
|
5月前
|
运维 网络协议 Linux
腾讯T6-9首发“Linux内核源码底层原理开发进阶笔记”,差距不止一点点哦
腾讯T6-9首发“Linux内核源码底层原理开发进阶笔记”,差距不止一点点哦
|
1月前
|
算法 Linux
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
|
2天前
|
Linux Android开发
Linux(6)CH9434 SPI调试笔记
Linux(6)CH9434 SPI调试笔记
11 0
|
2天前
|
Linux
Linux(5)WIFI/BT调试笔记
Linux(5)WIFI/BT调试笔记
16 0
|
19天前
|
Linux API C语言
FFmpeg开发笔记(一)搭建Linux系统的开发环境
本文指导初学者如何在Linux上搭建FFmpeg开发环境。首先,由于FFmpeg依赖第三方库,可以免去编译源码的复杂过程,直接安装预编译的FFmpeg动态库。推荐网站<https://github.com/BtbN/FFmpeg-Builds/releases>提供适用于不同系统的FFmpeg包。但在安装前,需确保系统有不低于2.22版本的glibc库。详细步骤包括下载glibc-2.23源码,配置、编译和安装。接着,下载Linux版FFmpeg安装包,解压至/usr/local/ffmpeg,并设置环境变量。最后编写和编译简单的C或C++测试程序验证FFmpeg环境是否正确配置。
37 8
FFmpeg开发笔记(一)搭建Linux系统的开发环境
|
5月前
|
缓存 网络协议 Linux
牛客网论坛最具争议的Linux内核成神笔记,GitHub已下载量已过百万(下)
牛客网论坛最具争议的Linux内核成神笔记,GitHub已下载量已过百万
|
1月前
|
Linux 网络安全 开发工具
【Linux笔记】常用的Linux的指令
【Linux笔记】常用的Linux的指令
|
2月前
|
Linux 数据安全/隐私保护 Android开发
10 个最佳 Linux 开源笔记软件
10 个最佳 Linux 开源笔记软件
115 1