使用paramiko模块远程连接遇到paramiko.ssh_exception.NoValidConnectionsError的解决办法

初学paramiko模块,想尝试在windows上远程登录ubuntu.

首先写了以下代码:

#创建用于连接远程服务器的客户端并执行基本命令
import paramiko


# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname="192.168.1.103",port=22,username="root1",password="123456")

# 执行命令
stdin,stdout,stderr = ssh.exec_command("df")
result = stdout.read()
# 打印输出
print(result.decode())

# 关闭连接
ssh.close()


然后打开虚拟机开了一个ubuntu,执行时,却遇到了提示:paramiko.ssh_exception.NoValidConnectionsError的错误。

这个说明了连接不到服务器,我也仔细检查了ip,用户名,密码都没问题。最后把问题锁定在22端口上面。

解决办法:

首先在ubuntu终端上输入:cat / etc/ssh/ssh_config,检查发现ssh端口号为22端口没错。使用paramiko模块远程连接遇到paramiko.ssh_exception.NoValidConnectionsError的解决办法_第1张图片

然后执行命令:netstat -ntl,查看22端口是否开通


发现果然没有开通22端口,于是下面就开通 22端口就可以解决问题了。

1.关闭防火墙,命令:sudo ufw disable

2.安装openSSH,命令:sudo apt install openssh-server openssh-client

3.查看22端口是否打开:netstat -ntl


使用paramiko模块远程连接遇到paramiko.ssh_exception.NoValidConnectionsError的解决办法_第2张图片

然后就成功地开通了22端口。

最后执行代码:命令成功的返回了。

使用paramiko模块远程连接遇到paramiko.ssh_exception.NoValidConnectionsError的解决办法_第3张图片

你可能感兴趣的:(使用paramiko模块远程连接遇到paramiko.ssh_exception.NoValidConnectionsError的解决办法)