您的位置:首页 > 运维架构 > Linux

linux sshd远程登陆配置

2016-05-13 14:10 1046 查看
远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

ssh_config 常用参数介绍

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

2)ForwardAgent 设置连接是否经过验证代理(如果存在)转发给远程计算机,默认为NO

3)ForwardX11 设置X11连接是否被自动重定向到安全的通道和显示集默认为NO

4)RhostsAuthentication 设置是否使用基于rhosts的安全验证,默认为NO

5)RhostsRSAAuthentication 设置是否使用用RSA算法的基于rhosts的安全验证,默认yes

6)PasswordAuthentication 设置是否使用口令验证 默认yes

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

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

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

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

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

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

13)Cipher 设置加密用的密钥,blowfish可以自己随意设置

sshd_config 常用参数介绍

1)Port 22 ssh服务端口,修改后要记得在防火墙添加对应的端口信息,端口范围0-65535,一般建议比1024大的端口

2)ListenAddress 0.0.0.0 监听的主机适配卡!举个例子来说,如果您有两个 IP,分别是 192.168.0.100 及 192.168.2.20开放 192.168.0.100 时,就可以写如同下面的样式:只监听来自 192.168.0.100 这个 IP 的SSH联机

3)Protocol 2   # 选择的SSH协议版本,可以是 1 也可以是 2

4)HostKey /etc/ssh/ssh_host_key # SSH version 1 使用的私钥

5)HostKey /etc/ssh/ssh_host_rsa_key # SSH version 2 使用的 RSA 私钥

6)HostKey /etc/ssh/ssh_host_dsa_key  # SSH version 2 使用的 DSA 私钥

7)SyslogFacility AUTH # 当有人使用 SSH 登入系统的时候,SSH会记录登陆信息,这个信息要记录在什么 daemon name 底下,预设是以 AUTH 来设定的,即是 /var/log/secure 里面

8)LogLevel INFO # 登录记录的等级 任何讯息!

9)LoginGraceTime 2m # 当使用者连上 SSH server 之后,会出现输入密码的画面,在该画面中,在多久时间内没有成功连上 SSH server就断线!时间为秒!

10)PermitRootLogin yes # 是否允许 root 登入!预设是允许的,但是建议设定成 no

11)PasswordAuthentication yes # 密码验证当然是需要的!所以这里写 yes 啰!

12)PermitEmptyPasswords no # 若上面那一项如果设定为 yes 的话,这一项就最好设定为 no ,这个项目在是否允许以空的密码登入!

13)GSSAPIAuthentication 是否允许使用基于 GSSAPI 的用户认证.默认值为”no”.仅用于SSH-2.

14)GSSAPICleanupCredentials 是否在用户退出登录后自动销毁用户凭证缓存。默认值是”yes”.仅用于SSH-2.

SSH日志级别

QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.

默认是INFO,DEBUG和DEBUG1是等价的,DEBUG级别一般用于调试

这里我们建议将日志级别调整为VERBOSE,这样可以检测对SSH服务的探测

SSH常见配置

Protocol 2 仅使有Protocol 2

Port 56000 绑定到56000端口 可以自己定义

ListenAddress 192.168.27.14

以下两项配置仅用于Protocol 1

RhostsRSAAuthentication no

RSAAuthentication no

关闭Kerberos身份验证

kerberosauthentication no

kerberosorlocalpasswd no

kerberosticketcleanup yes

关闭挑战/响应身份验证(s/key)

ChallengeResponseAuthentication no

关闭GSSAPI身份验证

GSSAPIAuthentication no

GSSAPICleanupCredentials yes

关闭公/私钥身份验证

PubkeyAuthentication no

AuthorizedKeysFile .ssh/authorized_keys

关闭基于主机的身份验证

HostbasedAuthentication no

IgnoreUserKnownHosts yes

IgnoreRhosts yes

开启unix/password身份验证

PasswordAuthentication yes

关闭X11转发

关闭除loopback外的其它网络接口转发

关闭tcp端口转发

X11Forwarding no

GatewayPorts no

AllowTcpForwarding no

日志级别调整为VERBOSE,默认为INFO

日志Facility为AUTH

LogLevel VERBOSE

SyslogFacility AUTH

关闭SSH客户端与服务端的变量转递

AcceptEnv none

拒绝系统用户通过SSH登录

AllowUsers *

DenyUsers daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody Debian-exim statd identd sshd libuuid snmp

登录警告信息

登录欢迎信息

关闭SSH的补丁版本号

关闭显示最后一次登录的信息

Banner /etc/issue

PrintMotd yes

ShowPatchLevel no

PrintLastLog no

指定支持的数据对称加密算法

指定支持的消息摘要算法

ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc

macs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96

每300秒向客户端发送一次alive消息,判断是否存活,如两次均检测失败,则断开与客户端的连接

关闭tcpkeepalive

clientaliveinterval 300

clientalivecountmax 2

tcpkeepalive no

允许有1000次验证连接请求,如20秒不能完成校验,则断开验证连接请求

有三次密码验证机会

MaxStartups 1000

LoginGraceTime 20

MaxAuthTries 3

支持压缩选项,从而提高数据通讯速度

关闭DNS反向解析,从而提高验证速度

支持PAM,从而支持可插入的安全模块,加载安全配置,如limit.conf等

Compression yes

UseDNS no

UsePAM yes

如其它用户有读取authorized.keys的权限,则拒绝连接

拒绝root用户登录

拒绝空口令的身份验证

用户验证时进程分离,ssh启用setuid切换到sshd用户启动验证进程

拒绝在SSH验证结束后使用/bin/login程序

strictmodes yes

PermitRootLogin no

PermitEmptyPasswords no

UsePrivilegeSeparation yes

UseLogin no

支持sftp子系统

Subsystem sftp /usr/lib/openssh/sftp-server

SSH的pid文件存放位置/var/run/

PidFile /var/run/sshd.pid

主机的私钥存放位置

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

下面是客户端的配置,如下:

针对所有主机的配置

Host *

支持所有协议族

支持SSHv2/v1,优先使用SSHv2

ssh连接目标主机的22端口

AddressFamily any

Protocol 2,1

Port 22

日志级别为VERBOSE

关闭批处理登录方式

防止DNS欺骗

不检查known_hosts中主机公钥的正确性

允许连接1024以下的端口

允许三次尝试密码登录

LogLevel VERBOSE

BatchMode no

HashKnownHosts yes

CheckHostIP yes

StrictHostKeyChecking no

NumberOfPasswordPrompts 3

仅使用hmac-md5做为消息摘要算法

仅使用arcfour(rc4)做为数据加密算法

MACs hmac-md5

Ciphers arcfour

仅在protocol 1使用

RhostsRSAAuthentication no

RSAAuthentication no

关闭挑战响应身份验证(s/key)

ChallengeResponseAuthentication no

关闭基于主机的身份验证

HostbasedAuthentication no

EnableSSHKeysign no

NoHostAuthenticationForLocalhost no

关闭GSSAPI身份验证

GSSAPIAuthentication no

GSSAPIDelegateCredentials no

GSSAPIKeyExchange no

GSSAPITrustDNS no

关闭公/私钥身份验证

PubkeyAuthentication no

开启unix/password身份验证

PasswordAuthentication yes

优先使用password身份验证

PreferredAuthentications password

连接SSH服务端,发现timeout,3秒后强制断开连接

每300秒向SSH服务端发送1次alive消息

如果两次alive消息都没有到达目的主机则断开连接

因为使用serveraliveinterval,所以关闭tcpkiipalive

ConnectTimeout 3

serveraliveinterval 300

serveralivecountmax 2

tcpkeepalive no

关闭对X11的端口转发

关闭除loopback外的其它网络接口转发

关闭转发代理

关闭ssh tunnel

ForwardX11 no

ForwardX11Trusted no

GatewayPorts no

ForwardAgent no

tunnel no

开启压缩选项,级别为6

Compression yes

以下选项仅在protocol 1支持

CompressionLevel 1

ConnectionAttempts 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 远程登录