1.背景:
由于验证代码需要ubuntu的linux环境,公司内都是centos,需要重新装个新环境
2.vm安装使用的VMware Workstation Player即精简版(免费),非VMware Workstation Pro版
ubuntu用的22.10 amd64版本
3.在安装上ubuntu后可以正常使用,但用crt却无法连接
排错过程:
3.1.端口问题,一开始以为默认不是22,后发现是22
3.2.防火墙问题,一开始认为是防火墙导致的,执行指令sudo ufw status 发现状态是inactive,而非active,表示防火墙状态是关闭的,没影响
3.3.ssh问题,在最开始排查,执行ps -ef|grep ssh
看到了ssh-agent正在运行,以为没有问题。
之后排查,判断是否安装ssh服务,可以通过如下命令进行:
ssh localhost
ssh: connect to host localhost port 22: Connection refused
表示没有还没有安装,可以通过apt安装,命令如下:
sudo apt-get install openssh-server 我通过这步已经安装成功了,后边的指令都没有使用
(若找不到安装包,先运行apt-get update,运行命令若出现E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用)E: 无法对目录 /var/lib/apt/lists/ 加锁的问题,执行命令sudo rm /var/lib/apt/lists/lock即可。这是一种极端的情况,也就是在上次更新没有正常关闭的情况下使用。在大部分情况下,出现问题的原因在于其它的程序如系统的自动更新等正在使用apt-get进程,所以解决方法也就是将这一进程关闭。)
系统将自动进行安装,安装完成以后,先启动服务:
service ssh start
ssh start/running, process 3582
sudo /etc/init.d/ssh start
然后ps -ef|grep ssh 看下sshd是否存在,如下sshd进程已经存在,安装成功
4.原因分析:
crt在连接虚机的时候,是通过ssh,而在安装ubuntu的时候,我没有安装ssh的服务端,即sshd程序,导致无法连接
补充“:ssh的客户端与服务端
Ubuntu默认并没有安装ssh服务
1.判断是否安装ssh服务,可以通过如下命令进行:
ps -e|grep ssh
输出如下:
root:~$ ps -e|grep ssh
2151 ? 00:00:00 ssh-agent------对应客户端
5313 ? 00:00:00 sshd------------对应服务器端
ssh-agent表示ssh-client启动,sshd表示ssh-server启动了。
2.如果缺少sshd,说明ssh服务没有启动或者没有安装。
安装ssh-client命令: Ubuntu apt-get install openssh-client Centos: yum install openssh-client
安装ssh-server命令:Ubuntu apt-get install openssh-server Centos: yum insatll openssh-server
3.安装完成以后,先启动服务: /etc/init.d/ssh start 或者ssh server start
启动后,可以通过“ps -e|grep ssh”查看是否正确启动。