工具:windows主机,Linux虚拟机

1.利用SSH协议远程登录(输入账户密码登录)

1. 简单介绍:

SSH协议(The Secure Shell):主要目的是在非安全的网络上提供安全的远程登录和数据传输服务。
传统的远程联机协议,例如Rlogin/Telnet协议,在网络上用明文传送数据,用户账号和用户口令很容易受到中间人攻击方式的攻击,SSH协议对所有传输的数据进行加密,利用SSH协议可以有效地防止远程管理过程中信息泄露的问题。

CentOS 系统基本上都默认安装了SSH服务器套件,其中必须要有的核心组件是opensshopenssh-server SSH服务器端。

2.检查服务

yum list installed | grep openssh命令来查看是否安装了openssh:

服务器私钥在哪 服务器密钥_linux


若未安装openssh服务,可使用 yum install openssh 命令来安装此服务。

openssh-server的守护进程名为sshd,可以用service sshd status或者systemctl status sshd.server命令来查看服务是否启动。

注:在CentOS 7中对服务进行操作不再是 service 服务名称 动作, 而是: systemctl 动作 服务名.servicesystemctl命令代替了service和chkconfig命令,但是service这些命令在CentOS 7 中还是能用的,只是有的不显示结果了,CentOS 7相应的命令操作(以sshd服务举例):
启动服务:systemctl start sshd.server
重启服务:systemctl restart sshd.server
查看状态:systemctl status sshd.server
关闭服务:systemctl stop sshd.server
设为开机启动:systemctl enable sshd.service
禁止开机启动:systemctl disable sshd.service

可以用systemctl is-enabled sshd.service命令来查看sshd服务是否是开机启动,enable即为开机启动,若是disable自己设为开机启动就行了。

此时sshd状态为已启动:

服务器私钥在哪 服务器密钥_ssh_02

3.额外配置

再对SSH服务器进行一些额外的安全配置,openssh服务器的主要配置文件是 :/etc/ssh/sshd_config

用vim对/etc/ssh/sshd_config添加四行代码:

PermitRootLogin no (表示不接受root用户远程联机)
PermitEmptyPasswords no (表示不接受口令为空的用户远程联机)
ClientAliveInterval 30
ClientAliveCountMax 4(表示客户端若30s内没有任何动作,服务器将发送一个alive消息给客户端,如果连发4次alive消息客户端仍没有动作,服务器将断开连接)

服务器私钥在哪 服务器密钥_服务器私钥在哪_03


保存退出后,用systemctl restart sshd.server命令重启sshd.

4.远程登录

接下来使用Putty这款经典的SSH客户端软件来进行远程登录。

注:Putty可进入http://t.cn/hSPO1来下载,需要下载putty.exe和puttygen.exe,如图所示:

服务器私钥在哪 服务器密钥_linux_04


运行putty.exe,进行如图所示配置:

服务器私钥在哪 服务器密钥_服务器私钥在哪_05


解决中文显示问题,避免中文乱码:

服务器私钥在哪 服务器密钥_服务器_06


服务器私钥在哪 服务器密钥_服务器_07


进行背景颜色等的配置:

服务器私钥在哪 服务器密钥_ssh_08


点击Session选项,输入主机的IP地址、端口号,选择协议等(一般端口号和协议默认就行),完成后点击open进行连接:

服务器私钥在哪 服务器密钥_linux_09


若想要保存此次配置,可填写Saved Sessions选项,写个名称,点击保存即可,下次登录可直接选择。首次登录一台主机时会弹出Putty Security Alert对话框,点击或者yes选项进入到登录界面:

服务器私钥在哪 服务器密钥_服务器_10


输入正确的用户名和密码就ok了。

服务器私钥在哪 服务器密钥_服务器_11


登陆成功上方的IP地址就会变成用户名了,至此远程登录就完成了。

2.使用密钥认证登录SSH服务器

1.修改配置文件

修改 /etc/ssh/sshd_config文件,禁止用户以密码认证身份的方式登录:

将yes改为no

服务器私钥在哪 服务器密钥_服务器私钥在哪_12


此时重启一下sshd服务,再重复上述用户密码登陆的步骤就没办法登录了,会弹出如下错误提示:

服务器私钥在哪 服务器密钥_linux_13

2.密钥方式登录

1.建立密钥

用普通用户的身份登陆服务器,使用ssh-keygen -t rsa 命令开始生成密钥

服务器私钥在哪 服务器密钥_linux_14


第一次输入:输入密钥存放的路径,默认回车存放在用户家目录的.ssh目录下.

第二三次输入:连续两次输入生成私钥的口令(例如hello).

回车结束。

服务器私钥在哪 服务器密钥_ssh_15


可以看出,生成的私钥放在id_rsa文件中,生成的公钥放在id_rsa.pub文件中

服务器私钥在哪 服务器密钥_linux_16


还可以看出生成的密钥指纹(密钥的MD5码)和直观的随机字符图randomart image.2.处理密钥

进入到用户家目录的.ssh目录下查看公钥文件和私钥文件,然后用cat ./id_rsa.pub>> authorized.keys命令把公钥放入到stu用户指定的公钥文件中(默认是~/.ssh/authorized_keys文件),之后将原公钥文件删除,修改公钥文件的读写属性为400

服务器私钥在哪 服务器密钥_ssh_17


3.分发私钥

通过安全方式将私钥分发给用户,在这里就不细说了(为完成实验任务,可以直接在Linux虚拟机的图形界面中将私钥文件拖到windows主机中)4.转换私钥

puttygen的作用就是把ssh-keygen命令生成的私钥转换为putty可以使用的私钥,运行puttygen.exe,点击Load

服务器私钥在哪 服务器密钥_ssh_18


选择所有文件类型,选中私钥文件

服务器私钥在哪 服务器密钥_服务器私钥在哪_19


点击确定,弹出窗口要求输入建立私钥时的口令

服务器私钥在哪 服务器密钥_linux_20


输入后点击ok进行私钥的转换,转换成功会有提示

服务器私钥在哪 服务器密钥_服务器私钥在哪_21


点击确定后,点击Save private key保存转换好的私钥,私钥的后缀总是.ppk

服务器私钥在哪 服务器密钥_linux_22


保存成功后,关闭puttygen.exe5.密钥登录

启动putty.exe,选择私钥进行登录

服务器私钥在哪 服务器密钥_服务器_23


选择好转化后的私钥文件后,选择Session选项,填写主机信息,点击open登录,进入登陆界面

服务器私钥在哪 服务器密钥_ssh_24


输入用户名后,提示输入的是生成私钥时的口令,正确输入后,进入用户服务器

服务器私钥在哪 服务器密钥_ssh_25


6.登录成功

!