登录linux服务器ssh(Linux服务器配置-SSH远程登录管理)(1)

一、SSH服务简介

SSH是Secure Shell的缩写,由 IETF 网络工作小组所制定。SSH 是建立在应用层和传输层,基础上的安全协议。

SSH是目前可靠的,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行文件传输。利用ssh协议可以有效防止远程管理过程中的信息泄露。

使用SSH服务,需要安装相应的服务端和客户端。客户端和服务端的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务端,B机器需要安装SSH客户端。

二、SSH服务监听端口、守护进程及配置文件

三、SSH配置文件常用设定项

服务端设定项(/etc/ssh/sshd_config)

Port

SSH服务监听端口,默认使用 22 端口,也可以使用多个端口,即重复使用 Port 这个设定项进行设定。

ListenAddress

指定sshd监听的网络地址,默认监听所有地址。可以使用下面的格式:

ListenAddress host|IPv4_addr|IPv6_addr

ListenAddress host|IPv4_addr:port

ListenAddress [host|IPv6_addr]:port

如果未指定 port ,那么将使用配置文件中 Port 指令的值,可以使用多个 ListenAddress 指令监听多个地址。

HostKey

主机私钥文件保存的位置。如果权限不对,sshd可能会拒绝启动。

SSH-1默认是:/etc/ssh/ssh_host_key 。

SSH-2默认是:/etc/ssh/ssh_host_rsa_key 和 /etc/ssh/ssh_host_dsa_key 。

一台主机可以拥有多个不同的私钥。rsa1仅用于SSH-1版本,dsa和rsa仅用于SSH-2版本。

SyslogFacility

指定 sshd 将日志消息通过哪个日志子系统(facility)发送。有效值是:DAEMON,USER,AUTH(默认), LOCAL0, LOCAL1, LOCAL2, LOCAL3,LOCAL4,LOCAL5,LOCAL6,LOCAL7。预设是以AUTHPRIV 来设定的,即保存在/var/log/secure 里面。

LogLevel

指定 sshd 的日志等级(详细程度)。可用值如下:QUIET, FATAL, ERROR, INFO(默认), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3。

DEBUG 与 DEBUG1 等价;DEBUG2 和 DEBUG3 则分别指定了更详细、更罗嗦的日志输出。比 DEBUG 更详细的日志可能会泄漏用户的敏感信息,因此反对使用。

LoginGraceTime

限制用户必须在指定的时限内认证成功,0 表示无限制。默认值是 120 秒。

PermitRootLogin

是否允许 root 用户登录!预设是允许的,但是建议设定成 no。

StrictModes

当使用者的 host key 改变之后,Server 就不接受联机,可以抵挡部分的木马程序!

MaxAuthTries

指定每个连接最大允许的认证次数,默认值是 6 。

MaxSessions

指定最大会话连接数,默认为10个。

RSAAuthentication

是否允许使用纯 RSA 公钥认证。仅适用于SSH-1版本。默认值是yes。

PubkeyAuthentication

是否允许公钥认证。仅适用于SSH-2版本。默认值为yes。

AuthorizedKeysFile

存放该用户可以用来登录的 RSA 或 DSA 公钥。默认值是:~/.ssh/authorized_keys。

设定若要使用不需要密码登录的账号时,那么那个账号存放密码所在文件名!

PasswordAuthentication

是否允许使用基于密码的认证,默认为yes。

PermitEmptyPasswords

是否允许密码为空的用户远程登录。默认为no。

ChallengeResponseAuthentication

是否允许任何的密码认证。任何login.conf 规定的认证方式,均可适用。默认值为yes。但目前推荐使用 PAM 模块帮忙管理认证,因此这个选项可以设定为 no !

利用 PAM 管理使用者认证有很多好处,它可以记录与管理。所以建议将 UsePAM 项设置为yes,将ChallengeResponseAuthentication 项设定为 no。

KerberosAuthentication

指定用户为PasswordAuthentication提供的密码是否将通过Kerberos KDC进行验证。要使用Kerberos认证,服务器需要一个可以校验 KDC identity 的 Kerberos servtab 。默认值是no。

GSSAPIAuthentication

是否允许使用基于 GSSAPI 的用户认证。默认值为no。仅用于SSH-2版本。

UsePAM

是否使用 PAM 模块帮忙管理认证。

AcceptEnv

指定客户端发送的哪些环境变量将会被传递到会话环境中。[注意]只有SSH-2版本的协议支持环境变量的传递(即服务端接收的环境变量)。指令的值是用空格分隔的变量名列表(其中可以使用*和?作为通配符)。也可以使用多个 AcceptEnv 达到同样的目的。需要注意的是,有些环境变量可能会被用于绕过禁止用户使用的环境变量。由于这个原因,该指令应当小心使用。

客户端设定项(/etc/ssh/ssh_config)

Host

选项 Host 只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。

Port

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

Protocol

指定 sshd 支持的SSH协议的版本,1和2表示仅支持SSH-1或SSH-2协议。2,1表示同时支持SSH-1和SSH-2协议。

Ciphers

指定SSH-2协议允许使用的加密算法,多个算法之间使用逗号分隔。可以使用的算法如下: aes128-cbc, aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc;默认值是可以使用上述所有算法。

IdentityFile

设置从哪个文件读取用户的RSA安全验证标识。

StrictHostKeyChecking

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

CheckHostIP

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

PasswordAuthentication

设置是否使用密码验证。

RSAAuthentication

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

ForwardAgent

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

ForwardX11

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

GSSAPIAuthentication

是否允许使用基于 GSSAPI 的用户认证。默认值为no,仅适用于SSH-2协议。

SendEnv

指定客户端发送哪些环境变量至服务端。

以上是我在学习Linux系统中整理的一些学习要点,肯定会有不对的地方,希望各位大侠给与指正,我们共同学习!谢谢!

Linux服务器配置-SSH远程登录管理(二)

将介绍配置中用到的相关命令,并通过实例说明怎样配置SSH基于密码认证登录。

,