SSH服务远程登录Linux主机操作实践
SSH是一种能够以安全方式实现远程登录的协议。这也是远程管理Linux系统的最佳方式。它以加密文本形式发送以确保安全。一般情况下,Linux系统安装时默认安装它。
如果想使用ssh协议远程管理Linux系统,需要实现sshd服务程序。 sshd是一个基于ssh协议开发的远程管理服务程序。它不仅快速且易于使用,而且还提供两种安全身份验证方法。
- 基于密码的认证 - 用于登录账号和密码认证
- 基于密钥的认证 - 本地生成密钥文件,然后将密钥对中的公钥文件上传到服务器并与公钥进行比较服务器上的密钥。如果一致,则可以远程登录。
实验环境:
采用RedHat7系统作为ssh服务器。当前用户是Linuxmi,IP地址是。
使用另一台Redhat7系统作为客户端。当前用户是linuxidc,IP地址是。
两台主机必须能够相互通信。
用户密码认证登录
Redhat7系统中默认安装并启动了sshd服务。然后在客户端计算机上使用ssh命令进行远程连接。
[linuxidc@RedHat7-2 ~]$ ssh linuxmi@ //ssh远程登录Linuxmi用户服务器
无法确定主机'()'的真实性。
ECDSA密钥指纹为93 : 8e :e7:3f:9a:22:6f:66:3a:f7:57:68:a1:57:3b:09.
您确定要继续连接吗(是/否)? yes // 确认连接
警告:永久添加''(ECDSA)到已知主机列表。
password of linuxmi@: //输入目标服务器的linuxmi用户密码
Last login: Wednesday May 23 03:36:52 2018
[linuxmi@RedHat7-1 ~]$ exit //退出远程登录
注销
连接已关闭。
安全密钥验证
第1步:在客户端主机中生成密钥对。
[linuxidc@RedHat7-2 ~]$ ssh-keygen -t rsa linuxidc/.ssh/id_rs a): //按回车指定私钥位置,默认在主机隐藏的.ssh文件夹中文件夹
输入密码(因为没有密码所以为空): //设置私钥 123123
再次输入相同的密码: //确认设置的短语
您的身份存储在 /home /linuxidc /.ssh /id_rsa.
您的公钥存储在 /home/linuxidc/.ssh /.
密钥的指纹为:
d0:b6:b9:96:b2:00 :b8 :f3:ea :a5:61:96:64:bd:b0:54 linuxidc@RedHat7-2
随机密钥图像为:
+--[RSA 2048]---- +
| |
| .o o o |
|.=.. S |o+。 。 。 |
+-----------------+
[linuxidc@RedHat7-2 ~]$ ls -lh ~/.ssh/id_rsa* //确认生成的密钥文件
-rw----------. 1 linuxidc zhangsan 1.8K 5月22日19:50 /home/linuxidc/.ssh/id_rsa
-rw-r--r--. 1 linuxidc zhangsan 400 May 22 7:50 PM /home/linuxidc/.ssh/
新生成的密钥对文件,id_rsa是私钥文件,默认权限是600,是用于SSH服务器的公钥文件。
第2步:更改服务器主机ssh配置文件以仅允许密钥身份验证并指定公钥数据文件的位置。
以 root 管理员身份更改配置文件(/etc/ssh/sshd_config)
vim /etc/ssh/sshd_config
PubkeyAuthentication yes //启用密钥对认证
AuthorizedKeysFile .ssh/authorized_keys //指定
上包含公钥的数据库数据文件第3步:将客户端主机上生成的公钥文件传输到服务器主机。
[linuxidc@RedHat7-2 ~]$ ssh-copy-id -i ~/.ssh/linuxmi@ //上传公钥库文件到服务器
/bin/ssh-copy-id: INFO :尝试使用新密钥登录,过滤掉已安装的任何密钥
/bin/ssh-copy-id: INFO: 还需要安装 1 个密钥 -- 如果现在提示新密钥需要安装密钥
linuxmi@'s password: //输入服务器linuxmi用户的密码
添加的密钥数量: 1
现在尝试使用以下命令登录计算机:“ssh 'linuxmi@'”
并检查是否仅添加了所需的密钥。
[linuxmi@RedHat7-1 ~]$ tail - 1 ~/ 。 ssh/authorized_keys //显示公钥库文件信息
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/p8OHTUBJMKqJbxxwUiNJvKVHv8KSMywr
tFB3BEsC02MyU29NKXkGUVM/lC++ 7b /bK1 j/xVg6gJXqCHk2lNrMk/jHjvR6qR7aLYhzWlCa
oDW0/Df9V9nrJNIg82DbXHUziwe6WoR9l+pzzQqYyI1Yq0iPTD4VZM5T94wRMX4taSgO8EQ
umWEeGtoHX/vgklapyMaG3ncA4SBxC0G4JUHo3q2KAfJ4eECrZ9LBwVsPq+ 4exlzDSeXmGh
AZO+VGo6Kbp7Q6ReA5U1YUbfsa9nKyAexiKxyzaGMXzBEri/aXGUpDibBWzRT4J DocF7P V
wHr+sshYqt4ULdG0wj91SK+D linuxidc@RedHat 7-2
[linuxmi@RedHat7-1 ~]$ ls -l ~/.ssh/authorized_keys/ /查看公钥存储文件
-rw-------. 1 linuxmi lisi 400 May 23 04:07 /home/linuxmi/.ssh/authorized_keys
请注意,每个用户都有一个对公钥存储文件的请求。不能有写权限。
第4步:重新启动sshd服务程序
service sshd restart
第5步:使用密钥对向客户端主机进行身份验证
[linuxidc@RedHat7-2 ~]$ ssh linuxmi@ //远程登录服务器
Enter the passphrase for the key '/home/linuxidc/.ssh/id_rsa':123123 //输入私有密钥短语要调用的 key 密钥文件。匹配
最后登录: Wednesday May 23 03:37:45 2018 from
[linuxmi@RedHat7-1 ~]$
所以当你使用密钥对认证登录时,你不需要知道目标服务器用户身份密码,只需验证客户端用户的私钥并检查公私钥文件是否匹配,更加安全。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网