SSH 在 linux 中是一种重要的系统组件,用户可以使用 SSH 来远程连接 linux 系统的计算机,或者传输文件。不过在 win10 以前,windows 并不原生支持 SSH,需要借助第三方工具来使用 SSH 功能。而实际上,微软在 2015 年就曾经宣布要在 Windows 中内置 SSH 功能,不过可惜的是后来一直没什么动静。不过最新的 windows 已经开始提供了 Openssh 功能。下面讲讲在CMD中使用SSH连接你的Linux主机。(以下主要是在win10电脑中的操作)
1 . 安装 OpenSSH 组件
点击 WIN 键 ,进入 设置 > 应用和功能 > 管理可选功能
如果列表内未发现有 OpenSSH 客户端 ,继续点击添加功能,选中 OpenSSH 客户端,安装即可。如果已安装 OpenSSH 客户端 ,进行下一步。
2 创建空文件夹
在以下路径(C:\Users\user)创建文件夹,并命名为.ssh
3 创建SSH密钥
Win 键 + R,输入 CMD 打开 CMD 窗口 ,使用 CMD 创建一个SSH密钥用于连接到你的 VPS
- 执行命令 cd .ssh 进入创建的空文件夹
- 执行命令 ssh-keygen 生成一个密钥
Enter file in which to save the key (C:\Users\Leah/.ssh/id_rsa): #设置密钥的文件名,必须设置为id_rsa (直接复制过去即可,不要修改"id"两个字母!)
Enter passphrase (empty for no passphrase): #设置密钥的密码,直接回车为不设置(设置的密钥会隐藏显示)
Enter same passphrase again: #再输入一遍密码,未设置密码直接回车
打开C:\Users\user\.ssh,即可找到刚才生成的两个文件(后缀为 pub 和一个无后缀文件),pub 后缀的文件是服务器需要用到的,无后缀的文件客户端连接服务器时需要用到。
将pub文件发给服务器的管理员。
4 通过命令行进入服务器
得到管理员已上传的回复后,打开CMD 窗口。
- 执行命令 ssh lab8888@41hz57.wip.vip -p 55811 进入服务器
其中lab8888 为用户名,41hz57.wip.vip 是服务器的 IP 地址, -p 55811 是通过 55811 端口连接。
如要简化指令,可以配置config文件(注意,无后缀,记事本编辑)
现在只需要在命令行中输入:ssh mylab 即可连接。
5 使用S SH 命令打开 jupyter notebook
执行命令 sudo -s
输入认证密码:******
执行命令 jupyter notebook --allow-root
即可打开网页
Q&A
问题1:如需在内网服务器安装花生壳软件,请参见以下链接
花生壳内网穿透:
- 内网和外网:内网指的是局域网,例如你家里或办公室中的网络。外网是指连接到因特网的网络。
- NAT(网络地址转换):大多数家庭和办公室网络都使用了NAT技术来允许多个设备共享一个公共IP地址。NAT将内部网络中的设备与外部网络隔离,并为它们分配局域网IP地址。这意味着内网设备通常无法从外部网络直接访问。
- 内网穿透原理:内网穿透技术允许通过在外网上建立一个与内网设备相关联的通道来绕过NAT,使得内网设备可以被外部网络访问。花生壳通过使用一对服务端和客户端软件实现内网穿透。
- 服务端软件:花生壳服务端软件在内网中运行,并与路由器进行通信。它通过与路由器建立一个虚拟的外部端口,将外部网络中的访问请求转发到内网设备上。
- 客户端软件:花生壳客户端软件运行在需访问内网设备的外部网络中。当你想要访问内网设备时,客户端软件会与服务端软件建立连接,并发送请求。
- 端口映射:服务端软件使用端口映射技术将外部网络的访问请求转发到内网设备上的指定端口。例如,你可以将外部网络上的80端口请求映射到内网设备上的HTTP服务器上的80端口。
- 数据传输:一旦建立了连接,并进行了端口映射,外部网络中的请求就会通过服务端软件被转发到内网设备上。内网设备返回的数据也通过服务端软件传递回外部网络。
- 穿透方式:花生壳提供三种主要的内网穿透方式:TCP穿透、UDP穿透和HTTP代理。用户可以根据实际需求选择不同的穿透方式。( UDP映射类型已下架)
Tutorial on basic SSH and Jupyter Notebook - Icarus's Wings - A blog of oracleyue
问题2:管理员需要把公钥放在服务器的哪个位置?
服务器中的目录地址为:~/.ssh/authorized_keys
①可以直接把.pub文件放在.ssh文件夹中;
②也可以把具体的公钥内容放在authorized_keys中(vim编辑即可)。