白嫖kaggle算力资源并ssh连接

本文介绍了如何在Kaggle环境中,通过设置root用户密码、修改SSH配置、处理OpenSSL版本冲突、安装和配置ngrok,实现22端口转发,以便于使用VSCode和shell远程连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

步骤1: 设置root用户密码(密码连接)

步骤2: 将/etc/ssh/sshd_config文件内容添加一行 PermitRootLogin yes

步骤3: 重启ssh服务

步骤4: 修改LD_LIBRARY_PATH环境变量

步骤5: 安装pyngrok并配置ngrok

一个notebook脚本直接运行


从上一篇的内容看,我是启用了code-server地端口,将其映射到ngrok内网穿透上,实现了方便地白嫖算力资源,那么如果想利用这台机器直接进行ssh连接岂不是更方便,于是本文将介绍如何进行ssh连接,方便使用vscode以及各种shell进行连接


由于我的ngrok账户只允许一个端口转发连接,所以以开始就要直接进行22端口转发服务

我们在kaggle打开终端依次进行这几个步骤(没有耐心直接跳转最后一节)

步骤1: 设置root用户密码(密码连接)

echo 'root:🍎your passwword🍎' | sudo chpasswd 

步骤2: 将/etc/ssh/sshd_config文件内容添加一行 PermitRootLogin yes

echo 'PermitRootLogin yes' | sudo tee -a /etc/ssh/sshd_config 

允许root用户通过SSH登录。

步骤3: 重启ssh服务

service ssh restart 

步骤4: 修改LD_LIBRARY_PATH环境变量

实现过程中一直遇到OpenSSL version mismatch. Built against 30000020, you have 30200000

检查发现是系统路径出现错误,原先的LD_LIBRARY_PATH为:

/usr/local/cuda/lib64:/usr/local/cuda/lib:/usr/local/lib/x86_64-linux-gnu:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/opt/conda/lib

LD_LIBRARY_PATH中包含了指向/opt/conda/lib的路径,这导致sshsshd等程序优先加载了这个目录下的OpenSSL库(libcrypto.so.3),而这个版本的库与系统期望使用的版本不匹配。

我们修改LD_LIBRARY_PATH,

export LD_LIBRARY_PATH=$(echo $LD_LIBRARY_PATH | tr ':' '\n' | grep -v '/opt/conda/lib' | paste -sd ':') 

这条命令会从LD_LIBRARY_PATH环境变量中移除所有包含/opt/conda/lib的条目。

步骤5: 安装pyngrok并配置ngrok

首先安装pyngrok:

pip install pyngrok 

然后配置ngrok的authtoken:

ngrok authtoken 🍎ngrok的authtoken🍎 

最后,使用ngrok将本地的22端口(SSH)暴露到公网:

ngrok tcp 22

一个notebook脚本直接运行

# 导入必要的Python库
import os
import subprocess

# 步骤1: 设置root用户密码
password = "🍎your passwword🍎"
command = f"echo 'root:{password}' | chpasswd"
result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if result.returncode == 0:
    print("Root密码设置成功")
else:
    print("设置root密码失败:", result.stderr.decode())

# 步骤2: 修改/etc/ssh/sshd_config以允许root登录
sshd_config_addition = "PermitRootLogin yes\n"
with open("/etc/ssh/sshd_config", "a") as sshd_config:
    sshd_config.write(sshd_config_addition)
print("已添加PermitRootLogin yes到sshd_config")

# 步骤3: 重启SSH服务
result = subprocess.run(["service", "ssh", "restart"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if result.returncode == 0:
    print("SSH服务重启成功")
else:
    print("SSH服务重启失败:", result.stderr.decode())

# 步骤4: 修改LD_LIBRARY_PATH环境变量
os.environ["LD_LIBRARY_PATH"] = ':'.join(filter(lambda x: '/opt/conda/lib' not in x, os.getenv("LD_LIBRARY_PATH", "").split(':')))
print("LD_LIBRARY_PATH已更新")

# 步骤5: 安装pyngrok并配置ngrok
!pip install pyngrok
!ngrok authtoken 🍎ngrok的authtoken🍎 
!ngrok tcp 22

还有一个问题,最后您需要在bashrc中重新引入conda链接,不然环境cuda不可用:
 

export LD_LIBRARY_PATH=/opt/conda/lib

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值