通过SSH服务登陆linux服务器(版本RHEL7)
SSH服务概述:是一种能够以安全的方式提供远程登陆的协议,也是目前远程管理linux系统的首选方式。在此之前,我们一般使用FTP或者telnet来远程登陆,因为它们是使用明文的形式在网络中传输账户密码和数据信息,因此很不安全,容易受到中间人攻击及非法篡改传输的数据信息,重则直接抓取服务器的账户密码。
使用ssh协议远程登陆的优点:
- 基于口令的验证——用账户和密码来验证登录;
- 基于密钥的验证——需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较。
方法一:通过用户名和密码的方式登录(Xshell为例)
- 输入用户名
- 输入密码
默认的状态下,linux服务器的sshd服务是开启的,无需任何服务器配置就可以直接登录上,前提是保证客户端与服务器网络可以通。
- 如果为了增加安全性,不允许以管理员用户登陆,则需修改配置文件:
sshd主配置文件:/etc/服务名称/服务名称.conf(重要的配置信息)
ssh_config是ssh客户端配置文件
sshd_config是ssh服务器配置文件
在这里我们修改服务器端的配置文件:
vim /etc/ssh/sshd_config
修改配置文件
systemctl restart sshd //重启ssh服务(修改配置文件后重启服务配置文件才会生效)
测试发现root用户无法登陆
方法二:通过密钥的方式登录
-
Linux客户端生成密钥:
[root@CeShiJi ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 为密钥对设置密码,不设可以直接enter
Enter same passphrase again: 确认密码
Your identification has been saved in /root/.ssh/id_rsa. ——私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. ——公钥
The key fingerprint is:
00:f5:78:00:a0:26:94:e2:67:d6:65:70:7a:38:99:d4 root@CeShiJi.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| .o.o==. |
|oo ..*E |
|=. .*=.o |
|o. + .oo |
| + S |
| |
| |
| |
| |
+-----------------+
[root@CeShiJi ~]#
上传公钥至服务端,在root@192.168.88.100's password: 后面输入服务器端密码。
修改服务端配置文件,让其禁止密码验证登录。
systemctl restart sshd //重启服务
验证发现,咱们无需密码和用户名直接就可以登录到服务器上。
- 通过xshell创建密钥:
生成密钥对。
下一步,下一步。
为密钥设置密码及名称,密码可以为空。
公钥格式可以选择openssh或者IETF SECSH格式。将公钥保存为文件。
将公钥文件通过软件上传到linux服务器里。
[root@localhost ~]# cat test_1.pub >> .ssh/authorized_keys
将上传的公钥文件安装到authorized_keys文件中。
选择刚刚新建的test_1s私钥,如果上面设置了密钥密码则在此处填写,否则为空。
注意:看有的人会遇到权限问题,解决方法:
ssh-keygen -i -f test_1.pub >> .ssh/authorized_keys
chmod 755 /home/houliangzhou/.ssh
chmod 644 authorized_keys