一 OpenSSH简介
SSH采用了密文的形式在网络上传输数据,实现了更高的安全级别,是Telenet服务的安全替代品,sshd是OpenSSH的服务器端守护进程,而与之对应的Windows下的客户端软件有很多,常用的有 SecureCRT,Xshell、Putty等。通过SecureCRT远程连接Linux系统,不受网络速度和带宽的影响,无论你是光纤上网还是宽带拨号上网,都能轻松连接,操作维护方便。
OpenSSH在CentOS Linux发行版本中是默认安装的,一般安装在/etc/ssh,对应的服务器配置文件为/etc/ssh/sshd_config。这里以CentOS7版本为例,终端讲述sshd_config这个配置文件中每个选项的含义。
二 sshd_config文件常用配置说明
//"Port"用来设置sshd监听的端口,如果不修改,默认是22端口。
#Port 22
//ListenAddress用来设置sshd服务器绑定的IP地址,不需要做特殊设置,保持默认。
#ListenAddress 0.0.0.0
//设置使用的SSH协议,默认为SSH2,其实可用的协议还有SSH1,不过SSH1安全度很低,已经基本不使用
#Protocol 2
//HostKey用来设置服务器秘钥文件的路径,保持默认即可。
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
//用来设置在多长时间之后系统自动重新生成服务器的秘钥。
#KeyRegenerationInterval 1h
//用来定义服务器秘钥的长度,默认为1024位
#ServerKeyBits 1024
//用来设定在记录来自sshd消息的时候,是否给出“facility code”)
SyslogFacility AUTHPRIV
//用来设置sshd日志消息级别
#LogLevel INFO
//用来设置如果用户登陆失败,在切断连接前服务器需要等待的时间,以秒为单位。
#LoginGraceTime 2m
//用来设置超级root能不能用SSH登录。root远程登录Linux是很危险的,因此在远程ssh登录Linux系统时,这个选项建议设置为no
#PermitRootLogin yes
//用来设置SSH登陆请求之前是否检查用户根目录和rhoses文件的权限和所有权。此选项建议设置为yes。
#StrictModes yes
//用来设置是否开启RAS秘钥验证,如果采用RAS秘钥登录方式,开启此选项。
#RSAAuthentication yes
//用来设置是否开启公钥验证方式验证,如果采用公钥验证方式登录时,开启此选项。
#PubkeyAuthentication yes
//用来设置公钥文件的路径,与PubkeyAuthentication配合使用。
AuthorizedKeysFile.ssh/authorized_keys
//用来设置SSH在进行安全验证时是忽略用户的$HOME/.ssh/known_hosts文件。
#IgnoreUserKnownHosts no
//用来设置在验证的时候是否使用 ~/.rhosts 和 ~/.shosts文件。
#IgnoreRhosts yes
//用来设置是否开启密码验证机制,如果采用密码登录系统,设置为yes。
#PasswordAuthentication yes
//用来设置是否允许用密码为空的账号登录系统。
#PermitEmptyPasswords no
三 注意
对sshd_config文件配置完毕后,接着重启sshd守护进程,使修改生效。
systemctl restart sshd
开机自动重启,则需要执行下面的命令。
systemctl enable sshd