Linux Shell学习笔记3-在Ubuntu18开启ssh服务

Linux Shell学习笔记3-在Ubuntu18开启ssh服务

最近几天,因我一些客观原因,我需要远程访问我的ubuntu18主机。(其实也不远,只不过不是在一间屋子里,并且不是同一楼层。但网络上同属一个局域网。)与是我打算在我的远程ubuntu18电脑上开启ssh访问的服务。

Linux Shell学习笔记3-在Ubuntu18开启ssh服务

SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。

ssh服务端由2部分组成: openssh(提供ssh服务) openssl(提供加密的程序)

ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm,PuTTY等工具进行连接

1 SSH是啥

SSH是一种网络协议,它是比较可靠,专为远程登录会话和其他网络服务提供安全性协议

SSH是Secure Shell的缩写,中文的意思就是:安全外壳协议。 由 IETF 的网络小组(Network Working Group)所制定; SSH 为建立在应用层基础上

的安全协议。

为什么说它“比较可靠”呢?其实没有绝对可靠,可靠性是“比较”出来的。与谁比呢,当然是与 ftp 、pop和 telnet 这些传统的网络服务程序相比的。这些在本质上都是不安全的,因为它们在网络上用 明文 传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的 安全验证 方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。

所谓“中间人”的攻击方式, 就是“中间人”冒充真正的 服务器 接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。“中间人”就是首鼠两端的,两头欺骗的程序。

通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的 速度 。SSH有很多功能,它既可以代替 Telnet ,又可以为 FTP 、 PoP 、甚至为 PPP 提供一个安全的"通道"。

2 查看ubuntu18主机上安装了哪些ssh服务

ComputerName:~$ ps -e | grep ssh

1647 ? 00:00:00 ssh-agent

这说明Ubuntu18默认是不会开启ssh服务的。所以我们无法对Ubuntu进行远程连接,这对Ubuntu的运维造成了很大不便。

可以看到,默认情况下只有ssh-agent,这个进程指的是ubuntu18的ssh服务的客户端,是让ubuntu18主机可以远程连接访问其它LINUX主机的。这个与我的要求不相符号,我需要的是其它电脑的SSH客户端来访问这台ubuntu18主机。

(当然,如果ubuntu18没有ssh客户端程序ssh-agent的话,可以用“apt-get install openssh-client”来安装。)

3 安装ssh服务端程序

Linux Shell学习笔记3-在Ubuntu18开启ssh服务

运行命令“apt-get install openssh-server”来安装ssh服务端程序。

ComputerName:~$ ps -e | grep ssh

1647 ? 00:00:00 ssh-agent

4171 ? 00:00:00 sshd

安装好了再查ssh进程,发现ssh服务的服务端进程sshd已经启动。这是因为“apt-get install openssh-server”安装命令在安装之后,自动调用systemd启动了SSH服务端程序,在ubuntu18系统中产生了这个服务进程。

4 关闭与开启ssh服务

安装之后ssh服务程序位于“/usr/bin/ssh”,sshd服务的脚本位于“etc/init.d”目录下面。/etc/init.d里的shell脚本能够响应start,stop,restart,reload命令来管理。那么,sshd的启动或停止命令如下:

开启ssh服务:service ssh start 或者 /etc/init.d/ssh start

 关闭ssh服务:service ssh stop 或者 /etc/init.d/ssh stop

5 查看ubunt18主机的IP地址

Linux Shell学习笔记3-在Ubuntu18开启ssh服务

执行 ifconfig命令,收到Command 'ifconfig' not found, but can be installed with: sudo apt install net-tools"的提示,这说明ubuntu18在默认情况下,网络工具程序也没有安装。好在执行"sudo apt install net-tools"就可以再次使用"ifconfig"命令了。

Linux Shell学习笔记3-在Ubuntu18开启ssh服务

安装好net-tools之后执行ifconfig

由上面可以看到,要远程访问的ubuntu18的主机是192.168.3.2。

6 用终端工具PuTTY或ssh,来登陆Ubuntu18主机

上面的步骤完成后,就可以用客户端来访问远程的ubuntu18主机了。这里以PuTTY访问为例。

Linux Shell学习笔记3-在Ubuntu18开启ssh服务

配置ubuntu18主机的IP地址和SSH端号

Linux Shell学习笔记3-在Ubuntu18开启ssh服务

上面的PuTTY,运行在windows上面,只是一个示例。实际当中,我是用我的另一台ubuntu18系统的电脑作客户机,去远程访问我那台放置在远处的ubuntu18主机的。用ssh命令做终端工具,很容易做到。命令行是“ssh nvie-yeguoya @192.168.3.2”,然后输入密码就可以登陆ubuntu18远程主机了。

Linux Shell学习笔记3-在Ubuntu18开启ssh服务

我这里SSH的操作,在同一个局域网内,但处于不同楼层之间。这虽不是真正意义上的远程,但真正的远程访问ubuntu18主机,也是同样的操作设置。


分享到:


相關文章: