一、前言
实验室配置有一台Linux服务器(ubantu),希望在自己的Windows电脑上能够对其进行远程连接。先是学习阶段,熟悉了Linux下的基本操作命令,然后在本机上安装虚拟机进行练手。
本机的VMware workstation上装了两种Linux系统,分别是CentOS和Ubantu。
下面分别进行一下介绍。
二、Ubantu
a、准备工作
在Windows下通过cmd命令行工具连接Ubuntu,出现问题:
原因如下:
首先Ubuntu系统默认是并没有安装SSH服务的,如果通过SSH连接Ubuntu,需要自己手动安装openssh-server。判断是否安装ssh服务,可以通过如下命令进行:
ssh localhost
结果显示出现了一个问题。如下:
这是因为Ubuntu默认没有安装openssh-server,我们也可以通过下一个命令来检测,如果只有ssh-agent,说明没有安装openssh-server,命令如下:
ps -e|grep ssh
因此,我们想要通过SSH协议连接需要手动安装openssh-server。命令如下:
sudo apt-get install openssh-server
安装完成后,我们再用ps -e|grep ssh命令来看下,openssh-server安装上去没有。输入命令后出现如下截图,说明安装完毕,图中sshd就是我们所安装的。
最后,我们通过ssh localhost命令来看下,这个命令主要用来连接本机如果出现要输入密码,说明成功。
b、windows下利用CMD/PowerShell进行ssh连接
什么是cmd? 就是windows端的命令行窗口, 可以使用 快捷键 win + R 后在输入框里输入 cmd 然后回车调出来。
什么是powerShell? 就是cmd的增强版。可以在电脑左下角搜索程序那里搜出来。
用它俩连服务器是一样的方式 :
命令:ssh 用户名@服务器地址 如 ssh test@115.156.197.24
在实验时可能出现了错误,如下所示:
错误原因:用OpenSSH的人都知ssh会把你每个访问过的计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。我的客户机(Windows)之前与我的ubantu虚拟机服务器(ip:115.156.197.24)进行过连接,所以在我的相应目录中已经存下了这台ubantu服务器的公钥(public key)。
然而,在后来由于某些原因进行了快照回复(类似于重装系统),由于系统重装,标识变了所以导致不能继续登录。可以参考:https://blog.csdn.net/asdcls/article/details/85346790
https://www.cnblogs.com/cuizhipeng/p/5329848.html
解决办法:对于客户机是Linux系统的,可以采用在客户端执行命令,清除本地缓存的证书(115.156.197.24为要登陆的服务器ip):
ssh-keygen -R 115.156.197.24
或者采用https://www.cnblogs.com/cuizhipeng/p/5329848.html列出的三种办法来解决。而对于客户机是Windows的我们来说,显然只能采用后两种方法解决,即要么删除known_hosts文件,要么删除known_hosts中的那一条关于目标服务器对应ip的相关rsa信息。
然后最后大功告成:输入用户密码既可以进行远程连接。
需要注意的是:
1. 由于安全的原因,默认情况下是无法远程连接ubantu的root账户的,解决方案自行百度
2. 远程连接之前,首先要确定已经建立了服务器账户的登入目录以及指定了用户登入后所使用的shell。
3. 远程连接之前,记得要用sudo命令为要连接的账户指定密码。否则无法远程连接。
三、CentOS
CentOS操作系统相对来说要简单一些,操作的大部分方法都与Ubuntu系统相同。因为它默认已经安装了openssh-server。所以直接使用CMD/Powershell连接即可。
默认情况下,我们是可以远程连接CentOS的root用户的。