实验作业一:网络相关的命令工具研究报告-ssh

摘自百度:

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UXLinuxAIXSolarisDigital UNIXIrix,以及其他平台,都可运行SSH。

安装SSH:

在 Ubuntu 18.04.2LTS 版本中已经自带了openssh 的 client 版本,所以我们只需要安装 server 版本即可。

首先在终端中输入 ssh localhost 命令,出现以下消息表明确实没有安装。

然后输入 sudo apt-get install openssh-server 命令进行安装。

安装成功后,我们通过输入 sudo service ssh status 命令来检测安装是否成功,发现 Active: active (running) 就表示安装成功了。

从中我们也可以得到一些信息,比如 ssh 默认使用的端口号是 22,一般会建议修改该端口号,是为了防止端口冲突。可以在终端中输入

sudo gedit /etc/ssh/sshd_config 打开 ssh 的配置文件,然后在该文件中找到 #Port 22 这一行,22就是端口号,可以自行修改,比如修改为

#Port 2222,这里我就保持默认了。

为了测试 ssh 的远程连接,这里再 Windows 10 上面使用了 openssh 的 client 端。目前 Windows 10 已经自带 openssh 的 client 端了。

远程连接测试:

首先在 Windows 端我们需要保证 openssh 的服务已经打开了,可以打开服务管理器进行查看。

因为 openssh 客户端所在的目录已经被添加进PATH环境变量了,在 PowerShell 中可以直接执行。

可以看到输入命令 ssh vector@192.168.31.146 后就连接到了在 Ubuntu 上的 ssh 服务端,这里,vector 是我在 Ubuntu 上的用户名,192.168.31.146 是远程主机也就是 Ubuntu 的 IP 地址,你也可以用域名代替。输入命令后会提示你输入远程主机的密码,输入正确后就会连接到远程主机上。

通过输入 exit 命令可以退出连接。

使用密钥进行连接:

上面我们在输入连接命令 ssh vector@192.168.31.146 之后,会提示我们输入远程主机的密码,这是一种很不安全的操作,虽然比较简单。我们可以使用 ssh 提供的密钥来进行建立连接,这样可以避免输入密码,而且这种方式也杜绝了"中间人"攻击的可能性。

密钥需要在客户端产生,然后拷贝给服务端。

这里在 Windows (客户端) 输入 ssh-keygen 命令后为我们产生了一对公私钥,私钥由自己保存,公钥需要拷贝给服务端用于在建立连接时的验证。

一般我们可以通过 ssh-copy-id 命令传送,但是目前 Windows 还不支持,所以这里我手动拷贝了一份到服务端。

将生成的 id_rsa.pub 和 known_hosts 文件拷贝到 Ubuntu 下的 ~/.ssh/目录下,如果没有 ./ssh/目录需要我们自己手动创建一个。

然后在终端中输入以下命令

cat id_rsa.pub > authorized_keys 是将公钥添加到可信任的公钥文件中。两行 chmod 命令修改了文件的权限。最后重启 ssh 的服务。

此时我们在客户端输入 ssh vector@192.168.31.146 后就可以直接凭借公钥建立连接了,不需要再输入密码。

posted @ 2019-11-27 15:53  把栏杆拍遍  阅读(212)  评论(0)    收藏  举报