linux ssh_config 和 sshd_config 配置文件

来源:互联网 发布:风之影浏览器mac 编辑:程序博客网 时间:2024/06/18 15:30

现在远程管理 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 地址。

0 0
原创粉丝点击