从PC的控制台通过SSH连接到Google Collab

时间:2018-08-16 17:08:47

标签: tensorflow ssh ssh-tunnel

我已经在网上找到了一条说明:

#Generate root password
import random, string
password = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(20))

#Download ngrok
! wget -q -c -nc https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
! unzip -qq -n ngrok-stable-linux-amd64.zip
#Setup sshd
! apt-get install -qq -o=Dpkg::Use-Pty=0 openssh-server pwgen > /dev/null
#Set root password
! echo root:$password | chpasswd
! mkdir -p /var/run/sshd
! echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
! echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
! echo "LD_LIBRARY_PATH=/usr/lib64-nvidia" >> /root/.bashrc
! echo "export LD_LIBRARY_PATH" >> /root/.bashrc

#Run sshd
get_ipython().system_raw('/usr/sbin/sshd -D &')

#Ask token
print("Copy authtoken from https://dashboard.ngrok.com/auth")
import getpass
authtoken = getpass.getpass()

#Create tunnel
get_ipython().system_raw('./ngrok authtoken $authtoken && ./ngrok tcp 22 &')
#Print root password
print("Root password: {}".format(password))
#Get public address
! curl -s http://localhost:4040/api/tunnels | python3 -c \
    "import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"

它要求输入一些密钥,但我不知道从何处获取此密钥以及如何使用此方法通过ssh从PC连接。任何人都可以给点提示吗?我该怎么用?

2 个答案:

答案 0 :(得分:4)

我也遇到过同样的问题。要解决此问题,您必须以root用户身份登录到实例:

ssh root@0.tcp.ngrok.io -p <your_port>

然后在提示您输入密码时,您必须粘贴在脚本开始处随机生成的密码(在脚本的password变量中找到)

答案 1 :(得分:0)

您需要使用ngrok设置一个帐户。

随后您将收到授权码。

然后您可以转到ngrok网站的隧道部分,找到您创建的会话。

然后SSH到远程服务器:

ssh root@0.tcp.ngrok.io -p <port_number>

并使用代码中生成的密码进行连接。