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


公共的
模板
视频
图片
文档
下载
音乐
桌面