Linux实验:SSH公钥认证
一、实验目的
(一)熟悉生成用户密钥对。
(二)熟悉SSH公钥认证的步骤。
二、实验环境
1.两台虚拟主机
本地主机192.168.80.81
远程主机192.168.80.82
若只有一台,克隆一台。两台主机须在同一网段。不同机器的网络地址可能不同。
2. 在putty上,以用户yanji登录rh1。
三、实验过程(补充细节,记录和整理输出,必要时评述)
(一)本地主机: yanji创建自己的密钥对
$ mkdir -pm 700 .ssh
$ ssh-keygen -f .ssh/id_dsa -t dsa
口令串 passphrase 为空。查看产生的密钥对。
结果:
Your identification has been saved in .ssh/id_dsa.
Your public key has been saved in .ssh/id_dsa.pub.
The key fingerprint is:
2e:98:e8:8f:d1:c0:79:4e:be:c3:37:62:93:61:3b:88 yanji@localhost.localdomain
The key’s randomart image is:
±-[ DSA 1024]----+
| |
| |
| |
| . . |
| + o S |
| Ooo . |
| .o++. . |
|E…oX.o. |
| ooo . |
±----------------+
说明:
ssh-keygen生成密钥对,如果口令串为空,意味着私钥不加密,若口令串为非空,远程操作时需要输入口令串,私钥保存在.ssh/id_dsa,公钥保存在.ssh/id_dsa.pub。
(二)本地主机: yanji 上传公钥到远程主机
$ scp .ssh/id_dsa.pub root@192.168.139.3:.
结果:
The authenticity of host ‘192.168.80.82 (192.168.80.82)’ can’t be established.
RSA key fingerprint is 6c:6b:f0:79:ee:0b:03:24:e8:f4:74:63:98:07:1c:f6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.80.82’ (RSA) to the list of known hosts.
root@192.168.80.82’s password:
id_dsa.pub 100% 617 0.6KB/s 00:00
说明:
scp是在主机间复制文件,利用scp将yanji的公钥复制到远程主机的当前目录,第一次会提示两台机器之间没有建立关系,还需要输入远程主机的密码。
(三)远程主机: root添加yanji 的公钥到授权密钥文件
#mkdir -pm 700 .ssh
#cat id_dsa.pub >> .ssh/authorized_keys
#chmod 600 .ssh/ authorized_keys
说明:
创建目录,-m指定该目录的权限码,-p则表明如果该目录已经存在则不报错,然后将yanji的公钥写入到authorized_keys中,然后修改authorized_keys的user权限为可读可写。
(四)本地主机中: yanji 免密码远程登录并操作
1.远程登录
$ ssh root@192.168.139.3 结果:
Last login: Thu Mar 21 20:08:19 2019 from 192.168.80.1
说明:
ssh用于远程登录别的主机。
2.创建一个文件
命令:
[root@localhost ~]# cat>2016344125
[root@localhost ~]# ls
结果:
2016344125 id_dsa.pub install.log.syslog 模板 图片 下载 桌面
anaconda-ks.cfg install.log 公共的 视频 文档 音乐
3.退出远程连接
#exit
结果:
logout
Connection to 192.168.80.82 closed.
(五)本地主机:远程复制
1.复制远程主机的文件到本地主机
命令:
[yanji@localhost ~]$ scp root@192.168.80.82:./2016344125 .
结果:
2016344125 100% 3 0.0KB/s 00:00
说明:将刚刚在远程主机创建的名为2016344125的文件复制到本地的当前目录
2.查看该文件
命令:
[yanji@localhost ~]$ ls
结果:
2016344125 公共的 模板 视频 图片 文档 下载 音乐 桌面
3.创建一个目录。在该目录下创建两个文件,内容不为空。
命令:
[yanji@localhost ~]$ mkdir -p homework1
[yanji@localhost ~]$ cat>test1
测试1
[yanji@localhost ~]$ cat>test2
测试2
4.复制该日录到远程主机
命令:
scp -r homework1 root@192.168.80.82:.
说明:
将刚刚创面的homework1目录复制到远程主机的当前目录。
5.远程目录列表
命令:
[root@localhost ~]# ls
说明:
2016344125 homework1 install.log 公共的 视频 文档 音乐
anaconda-ks.cfg id_dsa.pub install.log.syslog 模板 图片 下载 桌面
(六)远程执行命令
1.远程执行:重命名一个文件
命令:
[yanji@localhost ~]$ ssh root@192.168.80.82 mv homework1 homework2
2.远程执行:目录列表
命令:
[yanji@localhost ~]$ ssh root@192.168.80.82 ls
2016344125
anaconda-ks.cfg
homework2
id_dsa.pub
install.log
install.log.syslog
公共的
模板
视频
图片
文档
下载
音乐
桌面