问题描述:在一次配置ssh端口和秘钥登录过程中,修改几次都没有成功。最后发现修改的是ssh.config,原因是习惯tab一下,实在是眼拙!

ssh_config和sshd_config配置文件区别

远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是?以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
 
    ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。下面列出来的是两个配置文件中最重要的一些关键词,每一行为“关键词&值”的形式,其中“关键词”是忽略大小写的。

客户端

1、编辑 /etc/ssh/ssh_config 文件

# Site-wide defaults for various options
   Host *
        ForwardAgent no
        ForwardX11 no
        RhostsAuthentication no
        RhostsRSAAuthentication no
        RSAAuthentication yes
        PasswordAuthentication yes
        FallBackToRsh no
        UseRsh no
        BatchMode no
        CheckHostIP yes
        StrictHostKeyChecking no
        IdentityFile ~/.ssh/identity
        Port 22
        Cipher blowfish
        EscapeChar

下面对上述选项参数逐进行解释:

# Site-wide defaults for various options
带“#”表示该句为注释不起作,该句不属于配置文件原文,意在说明下面选项均为系统初始默认的选项。说明一下,实际配置文件中也有很多选项前面加有“#”注释,虽然表示不起作用,其实是说明此为系统默认的初始化设置。

Host *
"Host"只对匹配后面字串的计算机有效,“*”表示所有的计算机。从该项格式前置一些可以看出,这是一个类似于全局的选项,表示下面缩进的选项都适用于该设置,可以指定某计算机替换*号使下面选项只针对该算机器生效。

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

ForwardX11 no
"ForwardX11"设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。

RhostsAuthentication no
"RhostsAuthentication"设置是否使用基于rhosts的安全验证。

RhostsRSAAuthentication no
"RhostsRSAAuthentication"设置是否使用用RSA算法的基于rhosts的安全验证。

RSAAuthentication yes
"RSAAuthentication"设置是否使用RSA算法进行安全验证。

PasswordAuthentication yes
"PasswordAuthentication"设置是否使用口令验证。

FallBackToRsh no
"FallBackToRsh"设置如果用ssh连接出现错误是否自动使用rsh,由于rsh并不安全,所以此选项应当设置为"no"。

UseRsh no
"UseRsh"设置是否在这台计算机上使用"rlogin/rsh",原因同上,设为"no"。

BatchMode no
"BatchMode":批处理模式,一般设为"no";如果设为"yes",交互式输入口令的提示将被禁止,这个选项对脚本文件和批处理任务十分有用。

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

StrictHostKeyChecking no
"StrictHostKeyChecking"如果设为"yes",ssh将不会自动把计算机的密匙加入"$HOME/.ssh/known_hosts"文件,且一旦计算机的密匙发生了变化,就拒绝连接。

IdentityFile ~/.ssh/identity
"IdentityFile"设置读取用户的RSA安全验证标识。

Port 22
"Port"设置连接到远程主机的端口,ssh默认端口为22。

Cipher blowfish
“Cipher”设置加密用的密钥,blowfish可以自己随意设置。

EscapeChar
“EscapeChar”设置escape字符。

服务器端

2、编辑 /etc/ssh/sshd_config 文件:

# This is ssh server systemwide configuration file.
          Port 22
          ListenAddress 192.168.1.1
          HostKey /etc/ssh/ssh_host_key
          ServerKeyBits 1024
          LoginGraceTime 600
          KeyRegenerationInterval 3600
          PermitRootLogin no
          IgnoreRhosts yes
          IgnoreUserKnownHosts yes
          StrictModes yes
          X11Forwarding no
          PrintMotd yes
          SyslogFacility AUTH
          LogLevel INFO
          RhostsAuthentication no
          RhostsRSAAuthentication no
          RSAAuthentication yes
          PasswordAuthentication yes
          PermitEmptyPasswords no
          AllowUsers admin

?下面逐行说明上面的选项设置:

Port 22
"Port"设置sshd监听的端口号。

ListenAddress 192.168.1.1
"ListenAddress”设置sshd服务器绑定的IP地址。

HostKey /etc/ssh/ssh_host_key
"HostKey”设置包含计算机私人密匙的文件。

ServerKeyBits 1024
"ServerKeyBits”定义服务器密匙的位数。

LoginGraceTime 600
"LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。

KeyRegenerationInterval 3600
"KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。

PermitRootLogin no
"PermitRootLogin”设置是否允许root通过ssh登录。这个选项从安全角度来讲应设成"no"

IgnoreRhosts yes
"IgnoreRhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。

IgnoreUserKnownHosts yes
"IgnoreUserKnownHosts”设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的"$HOME/.ssh/known_hosts”

StrictModes yes
"StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。

X11Forwarding no
"X11Forwarding”设置是否允许X11转发。

PrintMotd yes
"PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。

SyslogFacility AUTH
"SyslogFacility”设置在记录来自sshd的消息的时候,是否给出“facility code”。

LogLevel INFO
"LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。

RhostsAuthentication no
"RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够了。

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

RSAAuthentication yes
"RSAAuthentication”设置是否允许只有RSA安全验证

PasswordAuthentication yes
"PasswordAuthentication”设置是否允许口令验证。

PermitEmptyPasswords no
"PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。

AllowUsers admin   #限定登录的用户名
"AllowUsers”的后面可以跟任意的数量的用户名的匹配串,这些字符串用空格隔开。主机名可以是域名或IP地址。

通常情况下我们在连接 OpenSSH服务器的时候假如 UseDNS选项是打开的话,服务器会先根据客户端的 IP地址进行 DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,并验证是否与原始 IP地址一致,通过此种措施来防止客户端欺骗。平时我们都是动态 IP不会有PTR记录,所以打开此选项也没有太多作用。我们可以通过关闭此功能来提高连接 OpenSSH 服务器的速度。

服务端步骤如下:
编辑配置文件 /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
找到 UseDNS选项,如果没有注释,将其注释
#UseDNS yes
添加
UseDNS no

找到 GSSAPIAuthentication选项,如果没有注释,将其注释
#GSSAPIAuthentication yes
添加
GSSAPIAuthentication no

保存配置文件

重启 OpenSSH服务器
/etc/init.d/sshd restart

注意:

一般远程修改ssh端口,建议22端口留着防止修改未成功,连不上都SB了。如果开启防火墙记得添加端口放行!

port 22

port 2345

引用:

http://www.cnblogs.com/ilinuxer/p/5087452.html

http://blog.csdn.net/field_yang/article/details/51568861

转载于:https://www.cnblogs.com/xiaochina/p/5802008.html

ssh配置文件ssh_config和sshd_config区别相关推荐

  1. [linux]ssh配置文件ssh_config和sshd_config的区别

    目录 概述 sshd_config配置 ssh_config配置 概述 远程管理linux系统基本上都要使用到ssh,因为 telnet.FTP等传输方式是以明文传送用户认证信息,是不安全的.SSH( ...

  2. ssh_config和sshd_config配置文件的区别

    引子: 之前做过修改ssh默认端口号以及服务器之间的免密登录,但是是百度CV搞得,最近又有这个需要,我就很自信的vim /etc/ssh/ssh_config,然后把Port那行前面的#去掉,然后修改 ...

  3. Debian8 Linux上安装SSH服务器并配置sshd_config文件启用root ssh登录

    Debian Linux上安装SSH服务器 安装SSH服务器debian Linux允许我们通过ssh协议登录debian服务器.SSH是从远程位置登录debian的首选方法,因为ssh协议通过Int ...

  4. git ssh配置文件 服务器_Linux 环境 搭建Git 服务器,并且修改SSH端口使用

    1.环境配置说明 服务器 CentOS 7 + git(git version 1.8.3.1) 客户端 Windows10 + SourceTree 2.安装 Git 服务器端安装: sudo yu ...

  5. 【Linux】循序渐进学运维-服务篇-ssh配置文件详解

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第4篇文章 文章目录 前言 配置文件的路径 配置文件详解 1. 修改默认端口 2. ListenAddress 0.0.0.0 3. ...

  6. 在Eclipse中制作SSH配置文件提示插件

    1.首先准备好常用的SSH配置文件的约束文件,包括了dtd文件和schema文件,如图所示: 2.然后在Eclipse中新建一个插件的项目(Plug-in Project),如图所示: 3.在出现的& ...

  7. 由于SSH配置文件的不匹配,导致的Permission denied (publickey)及其解决方法

    由于SSH配置文件的不匹配,导致的Permission denied (publickey)及其解决方法 参考文章: (1)由于SSH配置文件的不匹配,导致的Permission denied (pu ...

  8. telnet远程登陆、mstsc远程控制、SSH之间的比较和区别

    Telnet与远程桌面mstsc 一 演示 打开mstsc演示: 01 win + r 输入mstsc 02 输入要远程的机子的用户名和密码 03 登录 04 连接开启了,如图即是通过win窗口操作远 ...

  9. 关于ssh 配置文件的参数说明

    导读: 今天玩了一下SSH,回顾而知新,顺便了解了一下SSH的密匙的配置方法,相信安全,加密的数据传输方式也是你想要的!学习一下吧 SSH使用指南 介绍SSH 什么是SSH? 传统的网络服务程序,如: ...

最新文章

  1. Binary Tree Level Order Traversal II leetcode java
  2. Nginx模块开发入门
  3. 护航华油信通危化品运输,“共和国长子”背后的数字化力量
  4. 腾讯商业数据分析师培养计划
  5. 【随感】i'm new here
  6. 基于代价函数小波脊相位的MFSK信号符号速率估计MATLAB仿真及代码(2020.12.14更新)
  7. mysql总结 博客园_mysql 总结
  8. 利用LCD1602显示超声波测距
  9. PHP mysql_real_escape_string() 函数防止数据库攻击
  10. [摘自MSDN] ASP.Net2.0学习 [1] 母版页 7 : 母版页和内容页中的事件
  11. 苹果iOS手机暗藏间谍软件的揭秘者:扎徳尔斯基
  12. Struts2之OGNL表达式与值栈对象及常用标签的使用
  13. python-json下载以及分析-案例
  14. pyton 编写脚本检测两台主机之间的通信状态,异常邮件通知
  15. VB.NET rdlc 报表的使用
  16. 【STM32H7的DSP教程】第3章 Matlab简易使用之基础操作
  17. 未来是现在的将来时,在社科院杜兰金融管理硕士项目酝酿灿烂的明天
  18. FPGA驱动VGA显示
  19. php 全等 性能,在PHP中,相等(==)和全等(===)的含义是一样的。
  20. 【傻瓜教程】Ubuntu18.04LTS安装NVIDIA驱动详细完整过程

热门文章

  1. 多组测试数据求最大值
  2. document.ready和onload的区别——JavaScript文档加载完成事件
  3. int指令---汇编学习笔记
  4. SQLite数据库损坏与修复
  5. 【⛔拒绝内卷,学会shell,走遍天下都不怕⛔】shell编程基础
  6. 装饰者模式(为对象提供加强的接口)
  7. 解决layui数据表格table固定列行高不一致的情况
  8. 树莓派学习 -- 无法扫描出树莓派IP
  9. linux内核printk调试
  10. SecureCRT 或者 超级终端 始终无法ping通主机