ssh远程连接windows电脑使用jupyter notebook

1、检查客户端和服务器电脑是否都安装OpenSSH

  • 通过“设置-应用-可选功能”,查看是否安装openssh客户端和openssh服务器,如果没有,点击“添加功能”,进行安装。

2、在客户端生成公钥和密钥,并把公钥存储到服务器中,实现ssh免密登陆

  • 在客户端命令行中输入ssh-keygen,存储位置默认为C:\Users\username.ssh按回车,密码默认为空按回车
  • 生成两个文件:密钥id_rsa、公钥id_rsa.pub
  • 将公钥的内容拷贝到服务器中,位置为C:\Users\username.ssh,命名为authorized_keys,,命令如下:scp C:\Users\username.ssh\id_rsa.pub username@ip:C:\Users\username.ssh\authorized_keys
  • 修改服务器中authorized_keys的文件权限,命令如下:icacls.exe “C:\Users\username.ssh\authorized_keys” /inheritance:r /grant “Administrators:F” /grant “SYSTEM:F”
  • 修改服务器中的sshd_config文件,文件位置是PraogramData\ssh\sshd_config,修改如下条目:
#允许公钥授权访问,确保条目不被注释
PubkeyAuthentication yes
 
#授权文件存放位置,确保条目不被注释
AuthorizedKeysFile	.ssh/authorized_keys
 
#可选,关闭密码登录,提高安全性(如果关闭密码登陆,那么只有公钥存储在服务器的的客户端才能连接)
PasswordAuthentication no
 
#注释掉默认授权文件位置,确保以下条目被注释
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
  • 重启sshd服务,搜索“服务”,找到“OpenSSH SSH Server”,把启动类型从“手动”改为“自动”,并“重新启动”

3、部署jupyter notebook

  • 创建jupyter默认配置文件,默认位置为C:\Users\username.jupyter\jupyter_notebook_config.py,命令如下:jupyter notebook —generate-config
  • 生成SHA1加密的密钥,进入python编辑环境,输入如下命令:>>>from notebook.auth import passwd >>>passwd()
  • 修改jupyter默认配置文件如下:
c = get_config()
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '0.0.0.0' # 指定访问ip '0.0.0.0' 代表所有ip均可访问   ‘*’ 部分也可
c.NotebookApp.open_browser = False  # 禁止自动打开浏览器
c.NotebookApp.allow_root = True        # 以root身份运行
c.NotebookApp.password = 'sha1:**********************' # 刚才生成的秘钥
c.NotebookApp.port = 7777           # 指定端口,默认8888
c.NotebookApp.notebook_dir = ‘工作目录‘     # 指定工作目录
c.PAMAuthenticator.encoding = 'utf8'  #指定utf-8编码,解决读取中文路径或者文件乱码问题
c.NotebookApp.allow_remote_access = True # 允许远程访问
  • 多个jupyter同时启动,复制jupyter默认配置文件,生成新的密钥,修改密钥、端口、工作目录,运行时需要指定新的配置文件, 命令如下:jupyter notebook --config C:\Users\username.jupyter\jupyter_notebook_config_2.py
  • 打开浏览器输入http://{{ip}}:{{port}}/即可访问jupyter notebook

4、客户端远程连接服务器的jupyter notebook,有三种方法:

  • 方法一:同一个局域网下,直接在浏览器中输入http://服务器IP地址:jupyter端口号
  • 方法二:将本地端口号映射到服务器端口号,命令如下:ssh -L localhost:本地端口号:localhost:服务器端口号 username@服务器ip,然后在客户端可以通过“http://localhost:本地端口号”访问jupyter notebook
  • 方法三:打开VSCode,点击“查看-命令面板”,输入Jupyter:指定本地或远程Jupyter服务器的连接,输入http://服务器IP地址:服务器端口号,然后输入密码,连接成功。

你可能感兴趣的:(ssh,windows,jupyter)