1. 概述
2. xshell远程登陆
3. 配置sshd服务
3.1 修改配置文件
3.2 重启sshd服务
4. 配置密钥登陆
4.1 生成密钥对
4.2 上传(下载)公密钥
4.3 公钥写入console的/root/.ssh/authorized_keys
4.4 创建连接测试密钥登陆
4.5 配置sshd
1. 概述
在上一篇博客中,主要介绍了通过VMware workstation为虚拟机console安装最小化系统。本篇博客将介绍如何安全登陆console。
登陆Linux主机的方式有很多种,可归类为本地登陆或者远程登陆。
对于VMware workstation创建的虚拟机,本地登陆很简单,这里不做介绍。主要是介绍通过ssh协议进行远程登陆。
有关ssh协议详解参照博客《ssh协议详解》
2. xshell远程登陆
登陆Linux系统,有多种方式,比如本地,远程登陆;也有多种协议选择:比如telnet,ssh,vnc等;同时对于用户来说,根据自己PC的OS类型,也有很方式,比如采用终端,或者终端模拟工具等。
xshell是Windows系统下,包含了多种协议的终端工具,可以用来创建ssh连接,登陆远程主机。
xshelle登陆远程主机,参见博客《xshell登陆远程Linux主机.md》
3. 配置sshd服务
远程登陆主机,最重要的是保证主机安全。通过配置sshd服务,修改默认参数,能够从一定程度上保存主机安全。
3.1 修改配置文件
编辑sshd服务端配置文件:vi /etc/ssh/sshd_config
有关sshd服务的详细配置,参照博客《sshd服务配置详解》
修改内容如下:
Port 2222
ListenAddress 192.168.80.8
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeyFile .ssh/authorized_keys
PasswordAuthencation yes
PermitEmptyPasswords no
UseDNS no
初步配置如上述内容。这样的配置表示,console的sshd服务监听在192.168.80.8:2222端口。这是安全登陆的第一步。更加详细的配置以后配置。
3.2 重启sshd服务
执行命令service sshd restart
,重启sshd服务即可。
至此,已经修改了ssh的登陆端口。但依然是采用密码认证方式,密码容易遗忘,且很容易被窃取。因此需要配置密钥登陆方式。
运维工作中,ssh是远程管理的基础网络协议。ssh密码交互模式是远程管理的最大障碍。因此配置免交互的方式之一就是配置ssh密钥认证。
4. 配置密钥登陆
4.1 生成密钥对
生产公密钥对的方式有两种:
- 通过ssh客户端工具生成,如xshell,然后上传公钥至服务器
xshell密钥对生成,参见博客《xshell生成密钥对.md》
- 通过ssh服务端生成,下载私钥,导入到xshell中
Linux生成密钥对,参见博客《Linux主机生成密钥对.md》
两种方式均可,采用第1种方式较为安全,博客两种都有涉及。
采用第一种方式时,需要将公钥上传至服务器,并写入认证文件种;采用第二种方式,需要下载密钥,并导入到xshell等终端工具中。
4.2 上传(下载)公密钥
本篇博客中,因为console是最小化安装,并且暂未安装vsftpd服务器实现FTP传输,也未安装VMware Tools配置文件共享,因此可以使用sftp进行公密钥传输。
4.3 公钥写入console的/root/.ssh/authorized_keys
这里需要注意三个问题:
- /root/.ssh目录若没有,可以手动创建,并且保证权限属性为700
- /root/.ssh/authorized_keys文件没有,可以手动创建,并且保证文件权限属性为600
- 写入公钥到认证文件时,注意不要覆盖,而是追加
4.4 创建连接测试密钥登陆
在测试登陆时,一定要确保防火墙和SElinux处于暂时关闭状态,否则会有错误,具体参见博客《Error【0001】:主机密钥登陆问题.md》
4.5 配置sshd
本次配置,主要包括:禁止密码登陆,禁止root使用密码登陆
配置/etc/ssh/sshd_config的内容如下:
Port 2222
ListenAddress 192.168.80.8
Protocol 2
SyslogFacility AUTHPRIV
PermitRootLogin without-password
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
UseDNS no
Subsystem sftp /usr/libexec/openssh/sftp-server
原文地址:https://www.cnblogs.com/liwanliangblog/p/9193874.html