SSH学习之二 OpenSSH配置文件解析

下面是对SSH配置文件的一些选项的分解说明,ssh_config是OpenSSH客户端的配置文件,sshd_config是OpenSSH服务器端的配置文件。

ssh_config的内容如下:

# This is the ssh client system-wide configuration file.  See ssh_config(5) for more information.  This file provides defaults for users, and the values can be changed in

# er-user configuration files or on the command line.

# Configuration data is parsed as follows: // 配置选项生效的优先级

#  1. command line options // 命令行选项

#  2. user-specific file // 用户指定文件

#  3. system-wide file // 系统范围的文件

# Any configuration value is only changed the first time it is set. Thus, host-specific definitions should be at the beginning of the configuration file, and defaults at the end.

# Site-wide defaults for some commonly used options.  For a comprehensive list of available options, their meanings and defaults, please see the ssh_config(5) man page.

Host * // 使用的计算机范围,‘*‘表示全部

#   ForwardAgent no // 设置连接是否经过验证代理(如果存在)转发给远程计算机

#   ForwardX11 no // 设置X11连接是否被自动重定向到安全的通道和显示集

#   ForwardX11Trusted yes // 是否允许转发X11会话

#   RhostsRSAAuthentication no // 设置是否使用RSA进行rhosts的安全验证

#   RSAAuthentication yes // 设置是否使用RSA进行安全验证

#   PasswordAuthentication yes // 设置是否需要口令验证

#   HostbasedAuthentication no

#   GSSAPIAuthentication no

#   GSSAPIDelegateCredentials no

#   GSSAPIKeyExchange no

#   GSSAPITrustDNS no

#   BatchMode no // 如果为yes,则交互输入口令时的提示(passphrase/password的提示)信息将被禁止

#   CheckHostIP yes // 设置SSH是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为yes

#   AddressFamily any

#   ConnectTimeout 0

#   StrictHostKeyChecking ask // 如果设置成yes,SSH就不会自动把计算机的密钥加入$HOME/.ssh/known_hosts文件,并且一旦计算机的密匙发生了变化,就拒绝连接

#   IdentityFile ~/.ssh/identity

#   IdentityFile ~/.ssh/id_rsa // RSA安全验证文件的位置

#   IdentityFile ~/.ssh/id_dsa // DSA安全验证文件的位置

#   Port 22 // 服务器端口

#   Protocol 2,1 // 使用的SSH协议

#   Cipher 3des // 设置加密的方式

#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160

#   EscapeChar ~ // 设置Escape(转义)字符

#   Tunnel no

#   TunnelDevice any:any

#   PermitLocalCommand no

#   VisualHostKey no

#   ProxyCommand ssh -q -W %h:%p gateway.example.com

SendEnv LANG LC_* // 局部环境变量

HashKnownHosts yes

GSSAPIAuthentication yes

GSSAPIDelegateCredentials no

sshd_config的内容如下:

# Package generated configuration file See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for

Port 22 // sshd的监听端口号,默认为22

# Use these options to restrict which interfaces/protocols sshd will bind to

#ListenAddress ::

#ListenAddress 0.0.0.0 // 设置sshd服务绑定的IP地址,0.0.0.0表示侦听所有地址

Protocol 2 // 默认只使用2.*版本的SSH协议

# HostKeys for protocol version 2

HostKey /etc/ssh/ssh_host_rsa_key // SSH2版本的RSA密钥存放位置

HostKey /etc/ssh/ssh_host_dsa_key // SSH2版本的DSA密钥存放位置

HostKey /etc/ssh/ssh_host_ecdsa_key // SSH2版本的ECDSA密钥存放位置

#Privilege Separation is turned on for security

UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key

KeyRegenerationInterval 3600 // 密钥每隔1小时生成一次

ServerKeyBits 768 // SSH服务器密钥的位数

# Logging

SyslogFacility AUTH // 设置sshd发送到syslog所使用的日志类型

// 设置在记录来自sshd的消息时是否给出facility code

LogLevel INFO // syslog日志级别

# Authentication:

LoginGraceTime 120 // 设置如果用户不能成功登录,sshd将会在这个配置参数指定的时间过后断开连接(单位为秒)

PermitRootLogin yes // 如果为yes则允许root用户使用ssh登录,为no则表示不允许root进行ssh登录

StrictModes yes // 设置sshd在接受登录请求前是否检查用户的主目录以及rhosts文件的权限和所有者等信息。防止目录和文件设成任何人都有写权限

RSAAuthentication yes // 是否允许RSA验证

PubkeyAuthentication yes // 是否允许公钥验证

AuthorizedKeysFile %h/.ssh/authorized_keys// 公钥文件存放的位置

# Don‘t read the user‘s ~/.rhosts and ~/.shosts files

IgnoreRhosts yes // 验证时是否使用‘~/.rhosts‘和‘~/.shosts‘文件

# For this to work you will also need host keys in /etc/ssh_known_hosts

RhostsRSAAuthentication no // 设置是否允许用rhosts或/etc/hosts.equiv加上RSA进行安全验证

# similar for protocol version 2

HostbasedAuthentication no

# Uncomment if you don‘t trust ~/.ssh/known_hosts for RhostsRSAAuthentication

#IgnoreUserKnownHosts yes // 设置sshd在进行RhostsRSAAuthentication安全验证时是否信任用户的‘~/.ssh/known_hosts‘文件

# To enable empty passwords, change to yes (NOT RECOMMENDED)

PermitEmptyPasswords no // 设置是否允许用空口令登录

# Change to yes to enable challenge-response passwords (beware issues with

# some PAM modules and threads)

ChallengeResponseAuthentication no // 设置是否允许使用提示/应答式认证。sshd支持login.conf文件中定义的所有认证类型

# Change to no to disable tunnelled clear text passwords

#PasswordAuthentication yes // 设置是否需要口令验证,默认为yes

# Kerberos options // Kerneros验证

#KerberosAuthentication no

#KerberosGetAFSToken no

#KerberosOrLocalPasswd yes

#KerberosTicketCleanup yes

# GSSAPI options // GSSAPI 验证

#GSSAPIAuthentication no

#GSSAPICleanupCredentials yes // 清除验证信息

X11Forwarding yes // 设置sshd是否允许X11转发,默认为允许

X11DisplayOffset 10

PrintMotd no // 设置sshd是否在用户登录时显示/etc/motd中的信息

PrintLastLog yes // 交互式登录时是否输出用户上次登录的日期和时间

TCPKeepAlive yes // TCP活动保持

#UseLogin no // 指定login命令是否可用于交互式登录会话

#MaxStartups 10:30:60

#Banner /etc/issue.net // 设置保存banner信息的文件位置,用户登录后会显示该banner信息

# Allow client to pass locale environment variables

AcceptEnv LANG LC_* // 指定客户端发送的那些环境变量能后复制到当前会话的运行环境(客户端需要设置其配置文件ssh_config中的SendEnv参数)

Subsystem sftp /usr/lib/openssh/sftp-server
// 用于配置一个外部的服务程序,如文件传输服务器sftp-server。配置参数的值应该是一个系统名与命令,能够基于客户系统的请求开始运行。sftp-server命令实现了sftp文件传输子系统。这个配置参数仅使用与SSH2

# Set this to ‘yes‘ to enable PAM authentication, account processing, and session processing. If this is enabled, PAM authentication will be allowed through the

# ChallengeResponseAuthentication and PasswordAuthentication.  Depending on your PAM configuration, PAM authentication via ChallengeResponseAuthentication

# may bypass the setting of "PermitRootLogin without-password". If you just want the PAM account and session checks to run without PAM authentication, then enable

#this but set PasswordAuthentication and ChallengeResponseAuthentication to ‘no‘.

UsePAM yes // 是否启用PAM插件式认证模块,默认为yes

SSH学习之二 OpenSSH配置文件解析,布布扣,bubuko.com

时间: 2024-10-24 15:45:38

SSH学习之二 OpenSSH配置文件解析的相关文章

Android Animation学习(二) ApiDemos解析:基本Animatiors使用

Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.ObjectAnimator.AnimatorSet ApiDemos中Animation部分是单独的一个包. 下面代码来自ApiDemos中的AnimationCloning类,加了一个使用ValueAnimator的动画,还有一些注释. 完整的项目见:URL:https://github.com/mengdd/AnimationApiDemos.git package com.example.

Spring Boot干货系列:(二)配置文件解析

Spring Boot:配置文件解析   前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来.所以,我们要想把Spring Boot玩的溜,就要懂得如何开启各个功能模块的默认配置,这就需要了解Spring Boot的配置文件application.properties. 正文 Spring Boot使用了一个全局的配置文件applicat

Memcached学习(二)--命令解析

整体流程 1. 当客户端和Memcached建立TCP连接后,Memcached会基于Libevent的event事件来监听客户端是否有可以读取的数据. 2. 当客户端有命令数据报文上报的时候,就会触发drive_machine方法中的conn_read这个Case. 3. memcached通过try_read_network方法读取客户端的报文.如果读取失败,则返回conn_closing,去关闭客户端的连接:如果没有读取到任何数据,则会返回conn_waiting,继续等待客户端的事件到来

SSH学习之四 OpenSSH安全

OpenSSH是Linux/Unix下一款加密通讯软件,同时也是我们用来远程控制Linux/Unix服务器重要的必装软件.对于各版本的Linux及Unix发行版而言,OpenSSH的配置文件位置都各不一样.如Ubuntu下OpenSSH配置文件就在/etc/ssh/sshd_config. OpenSSH安全选项: Port 22 // OpenSSH打开的端口号 LoginGraceTime 120 // 客户端连接服务器成功后多少秒未登陆就被强制关闭连接 PermitRootLogin ye

SSH问题:系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常

现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 47; cvc-elt.1: 找不到元素 'beans' 的声明r的异常信息. 造成该异常原因有两种: 第一,配置文件头部配置的xsd版本信息不正确,造成解析时出错.spring头部xsd或dtd校验文件的查找分两步,第一先从本地jar包中找,如果找到则用

AndroidManifest配置文件解析之二——<manifest>

语法 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="string" android:sharedUserId="string" android:sharedUserLabel="string resource" android:versionCode="integer" android:ver

mybatis源码-解析配置文件(二)之解析的流程

1. 简介 在之前的文章<mybatis 初步使用(IDEA的Maven项目, 超详细)>中, 讲解了mybatis的初步使用, 并总结了以下mybatis的执行流程: 通过 Resources 工具类读取 mybatis-config.xml, 存入 Reader: SqlSessionFactoryBuilder 使用上一步获得的 reader 创建 SqlSessionFactory 对象; 通过 sqlSessionFactory 对象获得 SqlSession; SqlSession

23.ssh协议及实现(openssh)

SSH协议 ssh: secure shell, protocol, 22/tcp, 安全的远程登录 具体的软件实现:OpenSSH: ssh协议的开源实现,CentOS默认安装dropbear:另一个开源实现 SSH协议版本v1: 基于CRC-32做MAC,不安全:man-in-middlev2:双方主机协议选择安全的MAC方式基于DH算法做密钥交换,基于RSA或DSA实现身份认证 两种方式的用户登录认证:基于password基于key Openssh软件组成 OpenSSH介绍 相关包3个:

JavaScript--基于对象的脚本语言学习笔记(二)

第二部分:DOM编程 1.文档象模型(DOM)提供了访问结构化文档的一种方式,很多语言自己的DOM解析器. DOM解析器就是完成结构化文档和DOM树之间的转换关系. DOM解析器解析结构化文档:将磁盘上的结构化文档转换成内存中的DOM树 从DOM树输出结构化文档:将内存中的DOM树转换成磁盘上的结构化文档 2.DOM模型扩展了HTML元素,为几乎所有的HTML元素都新增了innerHTML属性,该属性代表该元素的"内容",即返回的某个元素的开始标签.结束标签之间的字符串内容(不包含其它